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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0xd0
mov eax, dword [ebp + 0x14]
movaps xmm0, xmmword [0x6c3682f0]
movaps xmmword [esp + 0x70], xmm0
cmp dword [ebp + 0x10], 1
je 0x6c237090
mov edx, dword [ebp + 8]
cmp dword [edx + 0x2c], 1
sbb ebx, ebx
not ebx
and ebx, 0xffff
mov dword [esp + 0x40], ebx
mov eax, dword [ebp + 0xc]
test eax, eax
js 0x6c236fa0
lea eax, [esp + 0xcc]
mov dword [esp + 8], eax
mov edx, dword [ebp + 0xc]
mov dword [esp + 4], edx
mov dword [esp], 0x6c487500
call fcn.6c26a620
mov dword [esp + 0x4c], eax
mov dword [esp], 0x6c487500
call fcn.6c2691a0
mov dword [esp + 0x48], eax
mov esi, eax
add esi, 0xf0
mov ecx, 0x39
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [esp], 0x10
call fcn.6c2df72c
mov ebx, eax
mov eax, dword [esp + 0xcc]
cmp eax, 3
ja 0x6c23702c
mov edx, 0x43
mov eax, 4
mov dword [ebx], 0xc
mov dword [ebx + 4], 0
mov dword [ebx + 8], eax
mov dword [esp], edx
call sub.msvcrt.dll_malloc
lea edx, [eax + 0x13]
and edx, 0xfffffff0
mov dword [edx - 4], eax
mov dword [ebx + 0xc], edx
mov edx, dword [ebp + 8]
mov dword [edx + 0x18], ebx
mov dword [esp], 0x10
call fcn.6c2df72c
mov edi, eax
mov ebx, dword [esp + 0xcc]
lea eax, [ebx + ebx*2]
cmp eax, 3
ja 0x6c23710c
mov edx, 0x53
mov eax, 4
mov dword [edi], 0x10
mov dword [edi + 4], 0
mov dword [edi + 8], eax
mov dword [esp], edx
call sub.msvcrt.dll_malloc
lea edx, [eax + 0x13]
and edx, 0xfffffff0
mov dword [edx - 4], eax
mov dword [edi + 0xc], edx
mov edx, dword [ebp + 8]
mov dword [edx + 0x1c], edi
test ebx, ebx
jle 0x6c236fa0
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], 0
mov dword [esp + 0x44], 0
lea esi, [esp + 0xc0]
mov dword [esp + 0x5c], esi
lea edx, [eax + 0x30]
mov dword [esp + 0x28], edx
lea ebx, [eax + 0x40]
mov dword [esp + 0x3c], ebx
lea edx, [eax + 0x50]
mov dword [esp + 0x38], edx
lea esi, [esp + 0x80]
mov dword [esp + 0x68], esi
lea esi, [esp + 0x90]
mov dword [esp + 0x64], esi
lea esi, [esp + 0xa0]
mov dword [esp + 0x60], esi
lea edx, [eax + 0x60]
mov dword [esp + 0x34], edx
lea ebx, [eax + 0x70]
mov dword [esp + 0x30], ebx
lea edx, [eax + 0x80]
mov dword [esp + 0x2c], edx
jmp 0x6c236aa7
and edx, 1
jne 0x6c236a42
mov edx, eax
and edx, 0xfffffffe
mov ecx, dword [0x6c488ecc]
cmp dword [esi + 0x14], ecx
cmovne eax, edx
lea edx, [esp + 0xb0]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov ebx, dword [esp + 0x50]
movsx eax, word [ebx + 0xfa]
and eax, dword [esp + 0x40]
mov dword [esp + 8], eax
lea esi, [esp + 0xc0]
mov dword [esp + 4], esi
mov edx, dword [ebp + 8]
mov dword [esp], edx
call fcn.6c236324
inc dword [esp + 0x44]
add dword [esp + 0x58], 0x100
add ebx, 0x100
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x44]
cmp dword [esp + 0xcc], ebx
jle 0x6c236fa0
mov edx, dword [ebp + 8]
mov edi, dword [edx + 0x1c]
mov edx, dword [ebp + 8]
mov ebx, dword [edx + 0x18]
mov esi, dword [ebx + 4]
mov dword [esp + 0xc0], esi
mov eax, dword [edi + 4]
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], 3
lea eax, [esi + 1]
mov edx, dword [ebx + 8]
cmp eax, edx
jbe 0x6c237054
mov eax, edx
shr eax, 2
mov ecx, 1
cmove eax, ecx
add eax, edx
mov dword [esp + 0x54], eax
mov edi, dword [ebx]
imul eax, edi
add eax, 0x13
mov dword [esp], eax
call sub.msvcrt.dll_malloc
lea edx, [eax + 0x13]
and edx, 0xfffffff0
mov dword [edx - 4], eax
mov ecx, edi
imul ecx, esi
mov esi, dword [ebx + 0xc]
mov edi, edx
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax - 4]
mov dword [esp], eax
mov dword [esp + 0x24], edx
call sub.msvcrt.dll_free
mov edx, dword [esp + 0x24]
mov dword [ebx + 0xc], edx
mov esi, dword [esp + 0x54]
mov dword [ebx + 8], esi
mov esi, dword [ebx + 4]
lea eax, [esi + 1]
mov dword [ebx + 4], eax
mov ecx, dword [ebx]
mov eax, esi
imul eax, ecx
add eax, edx
mov edi, eax
mov esi, dword [esp + 0x5c]
rep movsb byte es:[edi], byte [esi]
movaps xmm0, xmmword [esp + 0x70]
movaps xmm4, xmm0
mov ebx, dword [esp + 0x28]
mov edx, dword [esp + 0x58]
mulps xmm4, xmmword [ebx + edx]
movaps xmmword [esp + 0x80], xmm4
movaps xmm3, xmm0
mov ebx, dword [esp + 0x3c]
mulps xmm3, xmmword [ebx + edx]
movaps xmmword [esp + 0x90], xmm3
movaps xmm1, xmm0
mov ebx, dword [esp + 0x38]
mulps xmm1, xmmword [ebx + edx]
movaps xmmword [esp + 0xa0], xmm1
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x28]
test eax, eax
je 0x6c236d5c
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x58]
fld dword [eax + ebx + 0xa0]
fld dword [eax + ebx + 0x90]
fld dword [eax + ebx + 0xb4]
fld dword [eax + ebx + 0x94]
fld dword [eax + ebx + 0xb0]
fld dword [eax + ebx + 0xa4]
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0xf0]
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
shl eax, 4
add eax, dword [esp + 0x48]
mov ebx, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
mov edx, dword [0x6c488ecc]
cmp dword [eax + 0x14], edx
je 0x6c237070
fsubr st(2)
fxch st(1)
fsub st(4)
fmulp st(1)
fxch st(1)
fsubp st(2)
fxch st(2)
fsubp st(3)
fmulp st(2)
faddp st(1)
fabs
imul ecx, ebx
push ecx
fimul dword [esp]
pop eax
mov eax, dword [esp + 0x4c]
mov ebx, dword [esp + 0x58]
fld dword [eax + ebx + 0xd0]
mov esi, dword [esp + 0x58]
fld dword [eax + esi + 0xc0]
fld dword [eax + esi + 0xe4]
fld dword [eax + esi + 0xc4]
fld dword [eax + esi + 0xe0]
fld dword [eax + esi + 0xd4]
mov ebx, dword [esp + 0x50]
mov eax, dword [ebx + 0xf4]
lea eax, [eax + eax*2]
lea eax, [eax + eax*4]
shl eax, 4
add eax, dword [esp + 0x48]
mov ebx, dword [eax + 0x18]
mov ecx, dword [eax + 0x1c]
cmp edx, dword [eax + 0x14]
je 0x6c23705c
fsubr st(2)
fxch st(1)
fsub st(4)
fmulp st(1)
fxch st(1)
fsubp st(2)
fxch st(2)
fsubp st(3)
fmulp st(2)
faddp st(1)
fabs
imul ecx, ebx
push ecx
fimul dword [esp]
pop eax
movaps xmm5, xmm4
subps xmm5, xmm1
movaps xmm0, xmm3
subps xmm0, xmm1
movaps xmm2, xmm5
shufps xmm2, xmm5, 0xc9
mulps xmm2, xmm0
shufps xmm0, xmm0, 0xc9
mulps xmm0, xmm5
subps xmm0, xmm2
shufps xmm0, xmm0, 0xc9
mulps xmm0, xmm0
movaps xmm2, xmm0
shufps xmm2, xmm0, 0xc9
addps xmm2, xmm0
shufps xmm0, xmm0, 0xd2
addps xmm2, xmm0
movss dword [esp + 0x54], xmm2
fld dword [esp + 0x54]
fsqrt
mov edx, dword [ebp + 8]
fld dword [edx + 0x20]
fxch st(2)
fcomi st(3)
fcmovb st(0), st(3)
fstp st(3)
fxch st(1)
fmul st(0)
fmulp st(1)
fdivp st(1)
fsqrt
fmul dword [0x6c368300]
fadd dword [0x6c368188]
fnstcw word [esp + 0x6e]
mov ax, word [esp + 0x6e]
mov ah, 4
mov word [esp + 0x6c], ax
fldcw word [esp + 0x6c]
frndint
fldcw word [esp + 0x6e]
fmul dword [0x6c368304]
fld1
fxch st(1)
fcomi st(1)
fstp st(1)
jbe 0x6c236d58
fstp dword [esp + 0x20]
movss xmm2, dword [esp + 0x20]
shufps xmm2, xmm2, 0
movaps xmm0, xmm2
mulps xmm4, xmm2
movaps xmmword [esp + 0x80], xmm4
mulps xmm3, xmm2
movaps xmmword [esp + 0x90], xmm3
mulps xmm0, xmm1
movaps xmmword [esp + 0xa0], xmm0
jmp 0x6c236d5c
fstp st(0)
nop
mov edx, dword [ebp + 8]
mov ebx, dword [edx + 0x1c]
mov esi, dword [ebx + 4]
lea eax, [esi + 1]
mov edx, dword [ebx + 8]
cmp eax, edx
jbe 0x6c23704c
mov eax, edx
shr eax, 2
mov ecx, 1
cmove eax, ecx
add eax, edx
mov dword [esp + 0x54], eax
mov edi, dword [ebx]
imul eax, edi
add eax, 0x13
mov dword [esp], eax
call sub.msvcrt.dll_malloc
lea edx, [eax + 0x13]
and edx, 0xfffffff0
mov dword [edx - 4], eax
mov ecx, edi
imul ecx, esi
mov esi, dword [ebx + 0xc]
mov edi, edx
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax - 4]
mov dword [esp], eax
mov dword [esp + 0x24], edx
call sub.msvcrt.dll_free
mov edx, dword [esp + 0x24]
mov dword [ebx + 0xc], edx
mov esi, dword [esp + 0x54]
mov dword [ebx + 8], esi
mov esi, dword [ebx + 4]
lea eax, [esi + 1]
mov dword [ebx + 4], eax
mov ecx, dword [ebx]
mov eax, esi
imul eax, ecx
add eax, edx
mov edi, eax
mov esi, dword [esp + 0x68]
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp + 8]
mov ebx, dword [edx + 0x1c]
mov esi, dword [ebx + 4]
lea eax, [esi + 1]
mov edx, dword [ebx + 8]
cmp eax, edx
jbe 0x6c237044
mov eax, edx
shr eax, 2
mov ecx, 1
cmove eax, ecx
add eax, edx
mov dword [esp + 0x54], eax
mov edi, dword [ebx]
imul eax, edi
add eax, 0x13
mov dword [esp], eax
call sub.msvcrt.dll_malloc
lea edx, [eax + 0x13]
and edx, 0xfffffff0
mov dword [edx - 4], eax
mov ecx, edi
imul ecx, esi
mov esi, dword [ebx + 0xc]
mov edi, edx
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax - 4]
mov dword [esp], eax
mov dword [esp + 0x24], edx
call sub.msvcrt.dll_free
mov edx, dword [esp + 0x24]
mov dword [ebx + 0xc], edx
mov esi, dword [esp + 0x54]
mov dword [ebx + 8], esi
mov esi, dword [ebx + 4]
lea eax, [esi + 1]
mov dword [ebx + 4], eax
mov ecx, dword [ebx]
mov eax, esi
imul eax, ecx
add eax, edx
mov edi, eax
mov esi, dword [esp + 0x64]
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp + 8]
mov ebx, dword [edx + 0x1c]
mov esi, dword [ebx + 4]
lea eax, [esi + 1]
mov edx, dword [ebx + 8]
cmp eax, edx
jbe 0x6c23703c
mov eax, edx
shr eax, 2
mov ecx, 1
cmove eax, ecx
add eax, edx
mov dword [esp + 0x54], eax
mov edi, dword [ebx]
imul eax, edi
add eax, 0x13
mov dword [esp], eax
call sub.msvcrt.dll_malloc
lea edx, [eax + 0x13]
and edx, 0xfffffff0
mov dword [edx - 4], eax
mov ecx, edi
imul ecx, esi
mov esi, dword [ebx + 0xc]
mov edi, edx
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax - 4]
mov dword [esp], eax
mov dword [esp + 0x24], edx
call sub.msvcrt.dll_free
mov edx, dword [esp + 0x24]
mov dword [ebx + 0xc], edx
mov esi, dword [esp + 0x54]
mov dword [ebx + 8], esi
mov esi, dword [ebx + 4]
lea eax, [esi + 1]
mov dword [ebx + 4], eax
mov ecx, dword [ebx]
mov eax, esi
imul eax, ecx
add eax, edx
mov edi, eax
mov esi, dword [esp + 0x60]
rep movsb byte es:[edi], byte [esi]
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x58]
movaps xmm0, xmmword [ebx + edx]
mov ebx, dword [esp + 0x30]
addps xmm0, xmmword [ebx + edx]
mov ebx, dword [esp + 0x2c]
addps xmm0, xmmword [ebx + edx]
movaps xmm2, xmm0
mulps xmm2, xmm0
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xc9
addps xmm1, xmm2
shufps xmm2, xmm2, 0xd2
addps xmm1, xmm2
rsqrtps xmm1, xmm1
mulps xmm1, xmm0
xorps xmm2, xmm2
cmpneqps xmm2, xmm0
andps xmm1, xmm2
movaps xmmword [esp + 0xb0], xmm1
mov edx, dword [esp + 0x50]
mov eax, dword [edx + 0xf0]
lea eax, [eax + eax*2]
lea ebx, [eax + eax*4]
shl ebx, 4
add ebx, dword [esp + 0x48]
mov ecx, dword [ebx + 4]
mov eax, dword [edx + 0xf4]
lea eax, [eax + eax*2]
lea esi, [eax + eax*4]
shl esi, 4
add esi, dword [esp + 0x48]
mov edx, dword [esi + 4]
mov eax, edx
or eax, ecx
and ecx, 1
jne 0x6c236a2c
and edx, 1
je 0x6c236a42
mov edx, eax
and edx, 0xfffffffe
mov esi, dword [0x6c488ecc]
cmp dword [ebx + 0x14], esi
cmovne eax, edx
jmp 0x6c236a42
mov ebx, dword [ebp + 8]
mov dword [esp], ebx
call fcn.6c236820
test eax, eax
je 0x6c237084
mov eax, dword [ebx + 0x24]
test eax, eax
jne 0x6c237158
mov edx, dword [ebp + 8]
mov dword [esp], edx
call fcn.6c235490
test eax, eax
jne 0x6c23711c
mov edx, dword [ebp + 8]
mov ebx, dword [edx + 0x1c]
test ebx, ebx
je 0x6c236ff9
mov edx, dword [ebx + 0xc]
mov edx, dword [edx - 4]
mov dword [esp], edx
mov dword [esp + 0x24], eax
call sub.msvcrt.dll_free
mov dword [esp], ebx
call fcn.6c2df6f4
mov eax, dword [esp + 0x24]
mov edx, dword [ebp + 8]
mov ebx, dword [edx + 0x18]
test ebx, ebx
je 0x6c237021
mov edx, dword [ebx + 0xc]
mov edx, dword [edx - 4]
mov dword [esp], edx
mov dword [esp + 0x24], eax
call sub.msvcrt.dll_free
mov dword [esp], ebx
call fcn.6c2df6f4
mov eax, dword [esp + 0x24]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea edx, [eax + eax*2]
lea edx, [edx*4 + 0x13]
jmp 0x6c23692f
mov edx, dword [ebx + 0xc]
jmp 0x6c236ee3
mov edx, dword [ebx + 0xc]
jmp 0x6c236e5a
mov edx, dword [ebx + 0xc]
jmp 0x6c236dd1
mov edx, dword [ebx + 0xc]
jmp 0x6c236b38
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fldz
jmp 0x6c236c92
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fldz
jmp 0x6c236c18
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
movaps xmm0, xmmword [eax]
mulps xmm0, xmm0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xc9
addps xmm1, xmm0
shufps xmm0, xmm0, 0xd2
addps xmm1, xmm0
movss dword [esp + 0x58], xmm1
fld dword [esp + 0x58]
fsqrt
fstp dword [esp + 0x70]
movaps xmm0, xmmword [eax + 0x10]
mulps xmm0, xmm0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xc9
addps xmm1, xmm0
shufps xmm0, xmm0, 0xd2
addps xmm1, xmm0
movss dword [esp + 0x58], xmm1
fld dword [esp + 0x58]
fsqrt
fstp dword [esp + 0x74]
movaps xmm0, xmmword [eax + 0x20]
mulps xmm0, xmm0
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xc9
addps xmm1, xmm0
shufps xmm0, xmm0, 0xd2
addps xmm1, xmm0
movss dword [esp + 0x58], xmm1
fld dword [esp + 0x58]
fsqrt
fstp dword [esp + 0x78]
jmp 0x6c2368a4
mov edx, eax
shl edx, 4
add edx, 0x13
jmp 0x6c236984
mov ebx, dword [ebp + 8]
mov edx, dword [ebx + 0x1c]
mov edx, dword [edx + 0xc]
mov dword [esp + 8], edx
mov edx, dword [ebp + 0xc]
mov dword [esp + 4], edx
mov dword [esp], 0x6c487500
mov dword [esp + 0x24], eax
call fcn.6c26a680
mov eax, dword [esp + 0x24]
mov edx, dword [ebp + 8]
mov ebx, dword [edx + 0x1c]
test ebx, ebx
jne 0x6c236fdb
jmp 0x6c236ff9
mov dword [esp], ebx
call fcn.6c23544c
mov edx, dword [ebp + 8]
mov dword [esp], edx
call fcn.6c235490
test eax, eax
je 0x6c236fd1
jmp 0x6c23711c