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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xd4
cmp byte [0x10281734], 0
push ebx
push esi
push edi
je 0x100232fc
mov ecx, dword [0x1024b32c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x102812e0]
push eax
mov edx, dword [ecx]
mov eax, dword [edx + 0xc]
call eax
cmp byte [0x10247954], 0
jne 0x10023008
cmp byte [0x1027cc28], 0
jne 0x10023008
mov ebx, dword [0x1027cc3c]
mov edi, dword [0x1027cc40]
cmp ebx, edi
je 0x100232fc
mov eax, dword [0x10281360]
mov dword [esp + 0x14], eax
test eax, eax
je 0x100232fc
mov eax, dword [0x1028135c]
test eax, eax
jne 0x100228c9
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 edi, dword [0x1027cc40]
mov ebx, dword [0x1027cc3c]
mov dword [0x1028135c], eax
mov ecx, dword [esp + 0x14]
cmp dword [ecx + eax], 0
jle 0x100232fc
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 0x100232fc
movss xmm0, dword [0x10240604]
xor esi, esi
movss xmm3, dword [0x102408b8]
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 0x10023308
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 0x10023303
movss xmm1, dword [0x10249880]
movss xmm2, dword [0x10249884]
subss xmm2, dword [ebx + 0x20]
subss xmm1, dword [ebx + 0x1c]
movss xmm0, dword [0x10249888]
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 0x10022fc6
mov ecx, dword [0x1027cc40]
mov eax, 0x88888889
sub ecx, dword [0x1027cc3c]
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 0x10023308
mov eax, dword [0x1027cc3c]
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 0x10023303
movss xmm1, dword [ebx + 0x20]
lea edx, [esp + 0x18]
movss xmm2, dword [ebx + 0x24]
movss xmm0, dword [ebx + 0x1c]
mov ecx, dword [0x10281598]
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 0x10022c41
mov ecx, dword [0x1027cc40]
mov eax, 0x88888889
sub ecx, dword [0x1027cc3c]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x10023308
mov eax, dword [0x1027cc3c]
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 0x10023303
movss xmm1, dword [0x10249880]
movss xmm2, dword [0x10249884]
subss xmm2, dword [ebx + 0x20]
subss xmm1, dword [ebx + 0x1c]
movss xmm0, dword [0x10249888]
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 [0x10240720]
comiss xmm0, dword [esp + 0xd0]
push ecx
push eax
push ecx
movaps xmm0, xmmword [0x10240bb0]
movss xmm3, dword [0x10240768]
movss xmm1, dword [esp + 0x24]
movups xmmword [esp + 0x3c], xmm0
call fcn.1012bdd0
mov ecx, dword [0x1027cc40]
mov eax, 0x88888889
mov ebx, dword [0x1027cc3c]
sub ecx, ebx
movaps xmm0, xmmword [0x10240bb0]
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 0x10023308
cmp dword [esi + ebx + 0x14], 0xf
lea edx, [esi + ebx]
jbe 0x10022b9e
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 0x10022bc0
sub ecx, ebx
push ecx
push edx
lea ecx, [esp + 0x48]
call fcn.10003bc0
movss xmm2, dword [esp + 0x1c]
lea eax, [esp + 0x30]
subss xmm2, dword [0x102407b0]
movss xmm3, dword [0x1024079c]
movss xmm1, dword [esp + 0x18]
push 0
push 1
push eax
push 1
lea eax, [esp + 0x50]
push eax
push dword [0x102816cc]
call fcn.1012b7e0
mov ecx, dword [esp + 0x54]
cmp ecx, 0xf
jbe 0x10022c41
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10022c37
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10023002
push ecx
push edx
call fcn.1018b662
add esp, 8
mov ecx, dword [0x1027cc40]
mov eax, 0x88888889
sub ecx, dword [0x1027cc3c]
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x10023308
mov eax, dword [0x1027cc3c]
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 0x10023303
movss xmm1, dword [0x10249880]
movss xmm2, dword [0x10249884]
subss xmm2, dword [ebx + 0x20]
subss xmm1, dword [ebx + 0x1c]
movss xmm0, dword [0x10249888]
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 [0x1024738c]
comiss xmm0, dword [esp + 0x84]
jbe 0x10022fbe
mov ecx, dword [0x10281360]
lea eax, [esp + 0xa0]
push eax
call fcn.10004f40
mov ecx, dword [0x1027cc40]
mov eax, 0x88888889
mov ebx, dword [0x1027cc3c]
sub ecx, ebx
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x10023308
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 0x10023303
mov eax, dword [esi + ebx + 0x30]
movss xmm1, dword [eax]
movss xmm2, dword [eax + 4]
mulss xmm1, dword [0x10240560]
mulss xmm2, dword [0x10240560]
movaps xmm0, xmm1
movaps xmm1, xmm2
call fcn.1018c390
mov ecx, dword [0x10281598]
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 [0x102409a0]
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 [0x1024080c]
mulss xmm2, dword [0x1024080c]
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 0x10022fbe
movss xmm3, dword [0x102408ec]
lea eax, [esp + 0x60]
movss xmm2, dword [0x1024079c]
xorps xmm0, xmm0
push 0
push 0
push eax
push ecx
mov ecx, dword [0x102816cc]
lea eax, [esp + 0xc8]
movaps xmmword [esp + 0x70], xmm0
mov dword [esp], 0
push eax
mov dword [esp + 0x88], 0xf
mov dword [esp + 0x84], 8
mov dword [esp + 0x74], 0x206d6961
mov dword [esp + 0x78], 0x65726568
mov byte [esp + 0x7c], 0
call fcn.100bb310
mov ecx, dword [esp + 0x74]
cmp ecx, 0xf
jbe 0x10022ec8
mov edx, dword [esp + 0x60]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10022ebe
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10023002
push ecx
push edx
call fcn.1018b662
add esp, 8
movaps xmm0, xmmword [0x10240bb0]
lea eax, [esp + 0x30]
movss xmm2, dword [esp + 0x28]
movss xmm1, dword [esp + 0x24]
addss xmm1, dword [0x10240778]
movss xmm3, dword [0x1024079c]
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 [0x102816cc]
subss xmm2, xmm0
mov dword [esp + 0x6c], 0xf
mov dword [esp + 0x68], 8
mov dword [esp + 0x58], 0x206d6961
mov dword [esp + 0x5c], 0x65726568
mov byte [esp + 0x60], 0
call fcn.1012b7e0
mov ecx, dword [esp + 0x54]
cmp ecx, 0xf
jbe 0x10022f92
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10022f88
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10023002
push ecx
push edx
call fcn.1018b662
add esp, 8
movaps xmm0, xmmword [0x10240bb0]
lea eax, [esp + 0x30]
movss xmm3, dword [0x10240760]
movss xmm2, dword [esp + 0x28]
movss xmm1, dword [esp + 0x24]
push ecx
push eax
push ecx
movups xmmword [esp + 0x3c], xmm0
call fcn.1012bdd0
movss xmm3, dword [0x102408b8]
mov ebx, dword [0x1027cc3c]
inc edi
mov dword [esp + 0x10], edi
mov eax, 0x88888889
mov edi, dword [0x1027cc40]
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 0x10022912
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 [0x1027cc30]
mov eax, 0x66666667
sub ecx, dword [0x1027cc2c]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jbe 0x100232fc
mov ecx, dword [0x1024b32c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x6c]
call eax
test al, al
je 0x100232fc
mov edi, dword [0x10281360]
test edi, edi
je 0x100232fc
mov eax, dword [0x1028135c]
test eax, eax
jne 0x10023088
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 dword [0x1028135c], eax
cmp dword [edi + eax], 0
jle 0x100232fc
mov edi, dword [0x1027cc30]
mov eax, 0x66666667
mov ebx, dword [0x1027cc2c]
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 0x100232fc
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 0x10023303
mov ecx, dword [0x10281598]
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 0x100232d2
mov ecx, dword [0x1027cc30]
lea edi, [esi - 1]
mov ebx, dword [0x1027cc2c]
mov eax, 0x66666667
sub ecx, ebx
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, edi
jbe 0x10023303
mov ecx, dword [0x10281598]
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 0x100232d2
cmp byte [0x10247399], 0
je 0x100232d2
movaps xmm0, xmmword [0x10240bb0]
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.1012b6c0
cmp esi, 1
jne 0x100232d2
cvttss2si eax, dword [esp + 0x28]
mov ecx, dword [0x102813f8]
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 [0x1027cc30]
mov eax, 0x66666667
mov edi, dword [0x1027cc2c]
sub ecx, edi
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10023303
movss xmm1, dword [0x10249880]
movss xmm2, dword [0x10249884]
subss xmm2, dword [edi + 0x20]
subss xmm1, dword [edi + 0x1c]
movss xmm0, dword [0x10249888]
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 [0x1027cc30]
mov eax, 0x66666667
mov edi, dword [0x1027cc2c]
sub ecx, edi
movss xmm0, dword [0x10240604]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
comiss xmm0, dword [esp + 0x84]
movaps xmm0, xmmword [0x10240bb0]
add eax, edx
je 0x10023303
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.10021510
mov edi, dword [0x1027cc30]
mov eax, 0x66666667
mov ebx, dword [0x1027cc2c]
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 0x100230c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.1001f850
call fcn.1001f850
int3