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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov ecx, dword [0x1023d288]
sub esp, 0xd4
push ebx
push esi
push edi
mov edi, ecx
test edi, edi
je 0x1001d109
mov eax, dword [0x1023d284]
test eax, eax
jne 0x1001c66c
mov edx, 0xe80c2f78
mov ecx, 0x1021170d
call fcn.100050d0
mov edx, 0xc10bf213
mov ecx, 0x10211635
mov esi, eax
call fcn.100050d0
mov edx, esi
mov ecx, eax
call fcn.1011f760
mov ecx, dword [0x1023d288]
mov dword [0x1023d284], eax
cmp dword [edi + eax], 0
jle 0x1001d109
test ecx, ecx
je 0x1001d109
mov ecx, dword [0x1023d1cc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x68]
call eax
test al, al
je 0x1001d0f7
mov ecx, dword [0x1023d1cc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x1001d0f7
cmp byte [0x102733c1], 0
je 0x1001d109
mov ecx, dword [0x1023d1cc]
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 [0x10239658]
mov eax, ebx
mov edx, dword [0x10239654]
sub eax, edx
and eax, 0xfffffff8
cmp eax, 0x5c8
jne 0x1001d109
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 [0x1022fa98]
movss xmm4, dword [0x1022fa8c]
movss dword [esp + 0x18], xmm7
movss dword [esp + 0x50], xmm1
movss dword [esp + 0x24], xmm1
jne 0x1001c753
cmp byte [edx + edi*8 + 0xc], 0
mov byte [esp + 0x12], 1
jne 0x1001c758
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 [0x10237370]
dec eax
mov dword [esp + 0x14], 0xff
cmp eax, 3
ja case.default.0x1001c78c
jmp dword [eax*4 + 0x1001d110]
cmp edi, 0x46
jge 0x1001c7ab
lea eax, [edi + 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
jmp 0x1001c87f
mov ecx, ebx
sub ecx, edx
sar ecx, 3
lea eax, [ecx - 0x47]
cmp edi, eax
jbe case.default.0x1001c78c
sub ecx, edi
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm4
jmp 0x1001c87f
cmp edi, 0x41
jge 0x1001c7dd
lea eax, [edi + 1]
movd xmm0, eax
jmp 0x1001c7f1
mov ecx, ebx
sub ecx, edx
sar ecx, 3
lea eax, [ecx - 0x42]
cmp edi, eax
jbe 0x1001c7fc
sub ecx, edi
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
cvttss2si esi, xmm0
movaps xmm0, xmm1
movss xmm3, dword [0x1022f9c8]
addss xmm0, xmm7
mov dword [esp + 0x5c], 0x3f800000
lea eax, [esp + 0x58]
mov dword [esp + 0x54], 0
lea ecx, [esp + 0x54]
mulss xmm0, dword [0x1022f964]
divss xmm0, dword [0x1023733c]
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 0x1001c87f
mov ecx, ebx
sub ecx, edx
sar ecx, 3
lea eax, [ecx - 0x42]
cmp edi, eax
jbe case.default.0x1001c78c
sub ecx, edi
movd xmm0, ecx
jmp 0x1001c878
cmp edi, 0x41
jge case.default.0x1001c78c
lea eax, [edi + 1]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm3
cvttss2si esi, xmm0
mov dword [esp + 0x14], esi
movss xmm0, dword [0x102373f8]
lea eax, [esp + 0x14]
movss dword [esp + 0x78], xmm0
lea ecx, [esp + 0x60]
movss xmm0, dword [0x102373fc]
test esi, esi
movss dword [esp + 0x7c], xmm0
cmovns ecx, eax
movss xmm0, dword [0x10237400]
movss dword [esp + 0x80], xmm0
lea eax, [esp + 0x64]
cmp esi, 0xff
movss xmm5, dword [0x102373c8]
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 [0x1022f8b4]
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 + 0x1022fea0]
mulss xmm2, dword [0x1023737c]
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 [0x1022faf4]
mulss xmm6, xmm5
addss xmm6, xmm0
movss xmm0, dword [0x1022fbe0]
comiss xmm0, xmm1
movaps xmm0, xmm2
movaps xmm3, xmm6
cmovae eax, ecx
movss xmm1, dword [eax]
lea eax, [esp + 0x80]
mulss xmm1, dword [0x1022f920]
mulss xmm1, dword [0x10237374]
subss xmm0, xmm1
movss dword [esp], xmm0
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm5
subss xmm3, xmm0
movss xmm0, dword [0x1022fbe0]
comiss xmm0, xmm7
cmovae eax, esi
movss xmm0, dword [eax]
lea eax, [ebx - 2]
mulss xmm0, dword [0x1022f920]
mulss xmm0, dword [0x10237374]
subss xmm2, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm5
subss xmm6, xmm0
movaps xmm1, xmm6
call fcn.10123540
cmp byte [esp + 0x12], 0
je 0x1001cc30
cmp byte [0x1027340c], 0
je 0x1001cc30
cmp byte [esp + 0x13], 0
jne 0x1001cc3b
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.10185290
mov edx, eax
lea ecx, [esp + 0xc8]
call fcn.10017670
mov edx, eax
cmp dword [edx + 0x14], 0xf
jbe 0x1001ca7c
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 0x1001caa0
sub ecx, esi
push ecx
push edx
lea ecx, [esp + 0x38]
call fcn.10003d20
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 [0x1022fbe0]
cvtdq2ps xmm2, xmm2
cmovae ecx, eax
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x3c]
push 1
movss xmm3, dword [0x1022fae8]
mulss xmm2, dword [0x1023737c]
push eax
comiss xmm1, xmm0
lea eax, [esp + 0x34]
subss xmm2, dword [0x1022fb18]
push dword [0x102734a8]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x1022f920]
mov eax, dword [0x10239658]
sub eax, dword [0x10239654]
sar eax, 3
mulss xmm0, dword [0x10237374]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1022fea0]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x102373c8]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102373c8]
subss xmm1, xmm0
call fcn.10123670
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x1001cbd1
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001cbc7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001d0f1
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [esp + 0xdc]
cmp ecx, 0xf
jbe 0x1001cc0d
mov edx, dword [esp + 0xc8]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001cc03
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001d0f1
push ecx
push edx
call fcn.10183618
add esp, 8
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0xf
mov byte [esp + 0xc8], 0
jmp 0x1001cdbc
cmp byte [esp + 0x13], 0
je 0x1001cdbc
cmp byte [0x102733e5], 0
je 0x1001cdbc
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 [0x1022fbe0]
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 [0x1022fae8]
mulss xmm2, dword [0x1023737c]
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 [0x1022fae0]
push dword [0x102734a8]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x1022f920]
mov eax, dword [0x10239658]
sub eax, dword [0x10239654]
sar eax, 3
mulss xmm0, dword [0x10237374]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1022fea0]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x102373c8]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102373c8]
subss xmm1, xmm0
call fcn.10123670
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x1001cdbc
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001cdb2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001d0f1
push ecx
push edx
call fcn.10183618
add esp, 8
cmp byte [esp + 0x1e], 0
je 0x1001cf48
cmp byte [0x102733c8], 0
je 0x1001cf48
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 [0x1022fbe0]
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 [0x1022fae8]
mulss xmm2, dword [0x1023737c]
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 [0x1022fae0]
push dword [0x102734a8]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x1022f920]
mov eax, dword [0x10239658]
sub eax, dword [0x10239654]
sar eax, 3
mulss xmm0, dword [0x10237374]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1022fea0]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x102373c8]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102373c8]
subss xmm1, xmm0
call fcn.10123670
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x1001cf48
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001cf3e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001d0f1
push ecx
push edx
call fcn.10183618
add esp, 8
cmp byte [esp + 0x1f], 0
je 0x1001d0d0
cmp byte [0x1027341e], 0
je 0x1001d0d0
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 [0x1022fbe0]
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 [0x1022fae8]
mulss xmm2, dword [0x1023737c]
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 [0x1022fae0]
push dword [0x102734a8]
cmovae eax, ecx
movss xmm0, dword [eax]
mulss xmm0, dword [0x1022f920]
mov eax, dword [0x10239658]
sub eax, dword [0x10239654]
sar eax, 3
mulss xmm0, dword [0x10237374]
shr eax, 1
subss xmm2, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x1022fea0]
mov eax, dword [esp + 0x44]
cdq
sub eax, edx
sar eax, 1
cvtpd2ps xmm1, xmm0
movd xmm0, eax
mulss xmm1, dword [0x102373c8]
cvtdq2ps xmm0, xmm0
addss xmm1, xmm0
movd xmm0, ebx
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x102373c8]
subss xmm1, xmm0
call fcn.10123670
mov ecx, dword [esp + 0x44]
cmp ecx, 0xf
jbe 0x1001d0d0
mov edx, dword [esp + 0x30]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001d0c6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001d0f1
push ecx
push edx
call fcn.10183618
add esp, 8
mov edx, dword [0x10239654]
mov edi, ebx
mov ebx, dword [0x10239658]
mov eax, ebx
sub eax, edx
sar eax, 3
sub eax, 2
cmp edi, eax
jae 0x1001d109
jmp 0x1001c710
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov eax, dword [0x10239654]
cmp eax, dword [0x10239658]
je 0x1001d109
mov dword [0x10239658], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret