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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xd4
cmp byte [0x1027351c], 0
push ebx
push esi
push edi
je 0x10022bbf
mov ecx, dword [0x1023d1cc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x1023d20c]
push eax
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
cmp byte [0x10237a94], 0
jne 0x100228d8
cmp byte [0x1026ebf0], 0
jne 0x100228d8
mov ebx, dword [0x1026ec00]
mov edi, dword [0x1026ec04]
cmp ebx, edi
je 0x10022bbf
mov eax, dword [0x1023d288]
mov dword [esp + 0x14], eax
test eax, eax
je 0x10022bbf
mov eax, dword [0x1023d284]
test eax, eax
jne 0x10022199
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 edi, dword [0x1026ec04]
mov ebx, dword [0x1026ec00]
mov dword [0x1023d284], eax
mov ecx, dword [esp + 0x14]
cmp dword [ecx + eax], 0
jle 0x10022bbf
xor ecx, ecx
mov eax, 0x88888889
mov dword [esp + 0x10], ecx
mov ecx, edi
sub ecx, ebx
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10022bbf
movss xmm0, dword [0x1022f964]
xor esi, esi
movss xmm3, dword [0x1022fbe8]
movss dword [esp + 0x14], xmm0
sub edi, ebx
mov eax, 0x88888889
imul edi
add edx, edi
mov edi, dword [esp + 0x10]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x10022bcb
mov ecx, dword [esi + ebx + 0x34]
mov eax, 0x66666667
mov ebx, dword [esi + ebx + 0x30]
sub ecx, ebx
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10022bc6
movss xmm1, dword [0x10239938]
movss xmm2, dword [0x1023993c]
subss xmm2, dword [ebx + 0x20]
subss xmm1, dword [ebx + 0x1c]
movss xmm0, dword [0x10239940]
subss xmm0, dword [ebx + 0x24]
mov dword [esp + 0xc0], 0
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm2, xmm0
movss dword [esp + 0x10], xmm2
sqrtss xmm0, dword [esp + 0x10]
movss dword [esp + 0xc0], xmm0
movss xmm0, dword [esp + 0xc0]
comiss xmm0, xmm3
ja 0x10022896
mov ecx, dword [0x1026ec04]
mov eax, 0x88888889
sub ecx, dword [0x1026ec00]
imul ecx
mov dword [esp + 0x20], 0
add edx, ecx
mov dword [esp + 0x1c], 0
sar edx, 5
mov eax, edx
mov dword [esp + 0x18], 0
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x10022bcb
mov eax, dword [0x1026ec00]
mov ecx, dword [esi + eax + 0x34]
mov ebx, dword [esi + eax + 0x30]
sub ecx, ebx
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10022bc6
movss xmm1, dword [ebx + 0x20]
lea edx, [esp + 0x18]
movss xmm2, dword [ebx + 0x24]
movss xmm0, dword [ebx + 0x1c]
mov ecx, dword [0x102734c0]
movss dword [esp + 0x94], xmm0
movss dword [esp + 0x98], xmm1
movss dword [esp + 0x9c], xmm2
mov eax, dword [ecx]
push edx
lea edx, [esp + 0x98]
push edx
mov eax, dword [eax + 0x34]
call eax
cmp eax, 1
je 0x10022511
mov ecx, dword [0x1026ec04]
mov eax, 0x88888889
sub ecx, dword [0x1026ec00]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x10022bcb
mov eax, dword [0x1026ec00]
mov ecx, dword [esi + eax + 0x34]
mov ebx, dword [esi + eax + 0x30]
sub ecx, ebx
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10022bc6
movss xmm1, dword [0x10239938]
movss xmm2, dword [0x1023993c]
subss xmm2, dword [ebx + 0x20]
subss xmm1, dword [ebx + 0x1c]
movss xmm0, dword [0x10239940]
subss xmm0, dword [ebx + 0x24]
mov dword [esp + 0xd0], 0
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm2, xmm0
movss dword [esp + 0x10], xmm2
sqrtss xmm0, dword [esp + 0x10]
movss dword [esp + 0xd0], xmm0
movss xmm2, dword [esp + 0x1c]
lea eax, [esp + 0x30]
movss xmm0, dword [esp + 0x14]
addss xmm2, dword [0x1022fa68]
comiss xmm0, dword [esp + 0xd0]
push ecx
push eax
push ecx
movaps xmm0, xmmword [0x1022fe80]
movss xmm3, dword [0x1022faac]
movss xmm1, dword [esp + 0x24]
movups xmmword [esp + 0x3c], xmm0
call fcn.10123c90
mov ecx, dword [0x1026ec04]
mov eax, 0x88888889
mov ebx, dword [0x1026ec00]
sub ecx, ebx
movaps xmm0, xmmword [0x1022fe80]
imul ecx
movups xmmword [esp + 0x30], xmm0
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x10022bcb
cmp dword [esi + ebx + 0x14], 0xf
lea edx, [esi + ebx]
jbe 0x1002246e
mov edx, dword [edx]
mov ecx, edx
mov dword [esp + 0x50], 0
xorps xmm0, xmm0
mov dword [esp + 0x54], 0
movaps xmmword [esp + 0x40], xmm0
lea ebx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10022490
sub ecx, ebx
push ecx
push edx
lea ecx, [esp + 0x48]
call fcn.10003d20
movss xmm2, dword [esp + 0x1c]
lea eax, [esp + 0x30]
subss xmm2, dword [0x1022fafc]
movss xmm3, dword [0x1022fae8]
movss xmm1, dword [esp + 0x18]
push 0
push 1
push eax
push 1
lea eax, [esp + 0x50]
push eax
push dword [0x102734a8]
call fcn.10123670
mov ecx, dword [esp + 0x54]
cmp ecx, 0xf
jbe 0x10022511
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10022507
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100228d2
push ecx
push edx
call fcn.10183618
add esp, 8
mov ecx, dword [0x1026ec04]
mov eax, 0x88888889
sub ecx, dword [0x1026ec00]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x10022bcb
mov eax, dword [0x1026ec00]
mov ecx, dword [esi + eax + 0x34]
mov ebx, dword [esi + eax + 0x30]
sub ecx, ebx
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10022bc6
movss xmm1, dword [0x10239938]
movss xmm2, dword [0x1023993c]
subss xmm2, dword [ebx + 0x20]
subss xmm1, dword [ebx + 0x1c]
movss xmm0, dword [0x10239940]
subss xmm0, dword [ebx + 0x24]
mov dword [esp + 0x84], 0
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm2, xmm0
movss dword [esp + 0x10], xmm2
sqrtss xmm0, dword [esp + 0x10]
movss dword [esp + 0x84], xmm0
movss xmm0, dword [0x10237454]
comiss xmm0, dword [esp + 0x84]
jbe 0x1002288e
mov ecx, dword [0x1023d288]
lea eax, [esp + 0xa0]
push eax
call fcn.100050f0
mov ecx, dword [0x1026ec04]
mov eax, 0x88888889
mov ebx, dword [0x1026ec00]
sub ecx, ebx
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x10022bcb
mov ecx, dword [esi + ebx + 0x34]
mov eax, 0x66666667
sub ecx, dword [esi + ebx + 0x30]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10022bc6
mov eax, dword [esi + ebx + 0x30]
movss xmm1, dword [eax]
movss xmm2, dword [eax + 4]
mulss xmm1, dword [0x1022f8d4]
mulss xmm2, dword [0x1022f8d4]
movaps xmm0, xmm1
movaps xmm1, xmm2
call fcn.10184d20
mov ecx, dword [0x102734c0]
lea edx, [esp + 0x24]
movaps xmm3, xmm0
mov dword [esp + 0x2c], 0
movaps xmm2, xmm3
mov dword [esp + 0x28], 0
shufps xmm2, xmm3, 0xe
movaps xmm1, xmm3
movaps xmm0, xmm2
shufps xmm1, xmm3, 1
mulss xmm3, dword [0x1022fcc0]
mov dword [esp + 0x24], 0
mov eax, dword [ecx]
shufps xmm0, xmm2, 1
addss xmm3, dword [esp + 0xa8]
mulss xmm0, xmm1
push edx
mulss xmm2, xmm1
lea edx, [esp + 0xb0]
push edx
mulss xmm0, dword [0x1022fb70]
mulss xmm2, dword [0x1022fb70]
addss xmm0, dword [esp + 0xa8]
movss dword [esp + 0xbc], xmm3
addss xmm2, dword [esp + 0xac]
movss dword [esp + 0xb4], xmm0
movss dword [esp + 0xb8], xmm2
mov eax, dword [eax + 0x34]
call eax
cmp eax, 1
je 0x1002288e
movss xmm3, dword [0x1022fc20]
lea eax, [esp + 0x60]
movss xmm2, dword [0x1022fae8]
xorps xmm0, xmm0
push 0
push 0
push eax
push ecx
mov ecx, dword [0x102734a8]
lea eax, [esp + 0xc8]
movaps xmmword [esp + 0x70], xmm0
mov dword [esp], 0
push eax
mov dword [esp + 0x84], 8
mov dword [esp + 0x88], 0xf
mov dword [esp + 0x74], 0x206d6961
mov dword [esp + 0x78], 0x65726568
mov byte [esp + 0x7c], 0
call fcn.100bac30
mov ecx, dword [esp + 0x74]
cmp ecx, 0xf
jbe 0x10022798
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1002278e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100228d2
push ecx
push edx
call fcn.10183618
add esp, 8
movaps xmm0, xmmword [0x1022fe80]
lea eax, [esp + 0x30]
movss xmm2, dword [esp + 0x28]
movss xmm1, dword [esp + 0x24]
addss xmm1, dword [0x1022fac4]
movss xmm3, dword [0x1022fae8]
movups xmmword [esp + 0x30], xmm0
mov dword [esp + 0x70], 0
xorps xmm0, xmm0
mov dword [esp + 0x74], 0xf
movaps xmmword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0xbc]
mulss xmm0, dword [esp + 0x14]
push 0
push 1
push eax
push 0
lea eax, [esp + 0x50]
mov byte [esp + 0x70], 0
push eax
push dword [0x102734a8]
subss xmm2, xmm0
mov dword [esp + 0x68], 8
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x58], 0x206d6961
mov dword [esp + 0x5c], 0x65726568
mov byte [esp + 0x60], 0
call fcn.10123670
mov ecx, dword [esp + 0x54]
cmp ecx, 0xf
jbe 0x10022862
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10022858
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100228d2
push ecx
push edx
call fcn.10183618
add esp, 8
movaps xmm0, xmmword [0x1022fe80]
lea eax, [esp + 0x30]
movss xmm3, dword [0x1022faa8]
movss xmm2, dword [esp + 0x28]
movss xmm1, dword [esp + 0x24]
push ecx
push eax
push ecx
movups xmmword [esp + 0x3c], xmm0
call fcn.10123c90
movss xmm3, dword [0x1022fbe8]
mov ebx, dword [0x1026ec00]
inc edi
mov dword [esp + 0x10], edi
mov eax, 0x88888889
mov edi, dword [0x1026ec04]
add esi, 0x3c
mov ecx, edi
sub ecx, ebx
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x10], eax
jb 0x100221e2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov ecx, dword [0x1026ebf8]
mov eax, 0x66666667
sub ecx, dword [0x1026ebf4]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jbe 0x10022bbf
mov ecx, dword [0x1023d1cc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x10022bbf
mov edi, dword [0x1023d288]
test edi, edi
je 0x10022bbf
mov eax, dword [0x1023d284]
test eax, eax
jne 0x10022958
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 dword [0x1023d284], eax
cmp dword [edi + eax], 0
jle 0x10022bbf
mov edi, dword [0x1026ebf8]
mov eax, 0x66666667
mov ebx, dword [0x1026ebf4]
mov ecx, edi
sub ecx, ebx
mov esi, 1
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, esi
jbe 0x10022bbf
sub edi, ebx
mov dword [esp + 0x2c], 0
mov eax, 0x66666667
mov dword [esp + 0x28], 0
imul edi
mov dword [esp + 0x24], 0
sar edx, 4
mov eax, edx
mov dword [esp + 0x20], 0
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
cmp eax, esi
jbe 0x10022bc6
mov ecx, dword [0x102734c0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
lea eax, [esp + 0x24]
push eax
lea eax, [esi + esi*4]
lea eax, [eax*8 + 0x1c]
add eax, ebx
push eax
call edx
cmp eax, 1
je 0x10022b95
mov ecx, dword [0x1026ebf8]
lea edi, [esi - 1]
mov ebx, dword [0x1026ebf4]
mov eax, 0x66666667
sub ecx, ebx
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x10022bc6
mov ecx, dword [0x102734c0]
mov eax, dword [ecx]
mov edx, dword [eax + 0x34]
lea eax, [esp + 0x18]
push eax
lea eax, [edi + edi*4]
lea eax, [eax*8 + 0x1c]
add eax, ebx
push eax
call edx
cmp eax, 1
je 0x10022b95
movaps xmm0, xmmword [0x1022fe80]
lea eax, [esp + 0x30]
movss xmm3, dword [esp + 0x18]
movss xmm2, dword [esp + 0x28]
movss xmm1, dword [esp + 0x24]
push ecx
mov dword [esp], 0x3f000000
push eax
movups xmmword [esp + 0x38], xmm0
push ecx
movss xmm0, dword [esp + 0x28]
movss dword [esp], xmm0
call fcn.10123540
cmp esi, 1
jne 0x10022b95
cvttss2si eax, dword [esp + 0x28]
mov ecx, dword [0x102732d8]
push 0xf
push 0
mov edx, dword [ecx]
push eax
cvttss2si eax, dword [esp + 0x30]
push eax
mov eax, dword [edx + 0x19c]
call eax
mov ecx, dword [0x1026ebf8]
mov eax, 0x66666667
mov edi, dword [0x1026ebf4]
sub ecx, edi
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10022bc6
movss xmm1, dword [0x10239938]
movss xmm2, dword [0x1023993c]
subss xmm2, dword [edi + 0x20]
subss xmm1, dword [edi + 0x1c]
movss xmm0, dword [0x10239940]
subss xmm0, dword [edi + 0x24]
mov dword [esp + 0x84], 0
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm2, xmm1
addss xmm2, xmm0
movss dword [esp + 0x14], xmm2
sqrtss xmm0, dword [esp + 0x14]
movss dword [esp + 0x84], xmm0
mov ecx, dword [0x1026ebf8]
mov eax, 0x66666667
mov edi, dword [0x1026ebf4]
sub ecx, edi
movss xmm0, dword [0x1022f964]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
comiss xmm0, dword [esp + 0x84]
movaps xmm0, xmmword [0x1022fe80]
add eax, edx
je 0x10022bc6
sub esp, 0x10
mov eax, esp
sub esp, 0x10
mov ecx, esp
movups xmmword [eax], xmm0
mov eax, dword [edi + 0x24]
movq xmm0, qword [edi + 0x1c]
movq qword [ecx], xmm0
mov dword [ecx + 8], eax
call fcn.10021df0
mov edi, dword [0x1026ebf8]
mov eax, 0x66666667
mov ebx, dword [0x1026ebf4]
mov ecx, edi
sub ecx, ebx
inc esi
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x10022990
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.10024920
call fcn.10024920
int3