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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0xb0
cmp byte [0x6c45c140], 0
je 0x6c23628b
cmp byte [0x6c45c1c0], 0
je 0x6c23622e
fld1
fst dword [esp + 0x40]
fstp dword [esp + 0x4c]
movaps xmm5, xmmword [0x6c368110]
nop
mov dword [esp], 0x10
movaps xmmword [esp + 0x20], xmm5
call fcn.6c2df72c
mov dword [eax], 4
mov dword [eax + 4], 0
mov dword [eax + 8], 0x20
mov dword [esp], 0x93
mov dword [esp + 0x30], eax
call sub.msvcrt.dll_malloc
lea ecx, [eax + 0x13]
and ecx, 0xfffffff0
mov dword [ecx - 4], eax
mov edx, dword [esp + 0x30]
mov dword [edx + 0xc], ecx
mov dword [esp + 0x48], 0
lea esi, [esp + 0x80]
mov dword [esp + 0x70], esi
fnstcw word [esp + 0x7a]
mov ax, word [esp + 0x7a]
mov ah, 8
mov word [esp + 0x78], ax
movaps xmm5, xmmword [esp + 0x20]
lea esi, [esi]
mov eax, dword [esp + 0x48]
shl eax, 4
lea esi, [eax + 0x6c45c1e0]
mov dword [esp + 0x60], esi
add eax, 0x6c45c160
mov dword [esp + 0x5c], eax
mov ebx, dword [esp + 0x48]
mov esi, dword [ebp + 8]
mov ebx, dword [esi + ebx*4]
mov dword [esp + 0x54], ebx
mov eax, dword [ebx]
mov ebx, dword [eax + 0xc]
mov dword [esp + 0x50], ebx
mov edi, dword [eax + 4]
test edi, edi
je 0x6c235a08
xor eax, eax
mov dword [esp + 0x68], 0
jmp 0x6c235697
fxch st(1)
fcomi st(1)
fcmovb st(0), st(1)
fstp st(1)
fdivr dword [0x6c368120]
fstp dword [eax + 0x5c]
mov edi, ebx
mov esi, dword [esp + 0x5c]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x60]
mov cl, 4
rep movsd dword es:[edi], dword [esi]
mov cl, 3
mov ebx, 3
mov dword [eax + 0x60], 0
mov dword [eax + 0x64], 0
mov dword [eax + 0x68], ebx
mov dword [eax + 0x6c], ecx
lea edi, [eax + 0x40]
mov esi, dword [esp + 0x70]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
mov esi, dword [edx + 4]
lea eax, [esi + 1]
mov ecx, dword [edx + 8]
cmp eax, ecx
jbe 0x6c235a00
mov eax, ecx
shr eax, 2
mov ebx, 1
cmove eax, ebx
add eax, ecx
mov dword [esp + 0x6c], eax
mov edi, dword [edx]
imul eax, edi
add eax, 0x13
mov dword [esp], eax
mov dword [esp + 0x30], edx
movaps xmmword [esp + 0x20], xmm5
call sub.msvcrt.dll_malloc
lea ebx, [eax + 0x13]
and ebx, 0xfffffff0
mov dword [ebx - 4], eax
mov ecx, edi
imul ecx, esi
mov edx, dword [esp + 0x30]
mov esi, dword [edx + 0xc]
mov edi, ebx
rep movsb byte es:[edi], byte [esi]
mov eax, dword [edx + 0xc]
mov eax, dword [eax - 4]
mov dword [esp], eax
mov dword [esp + 0x30], edx
call sub.msvcrt.dll_free
mov edx, dword [esp + 0x30]
mov dword [edx + 0xc], ebx
mov esi, dword [esp + 0x6c]
mov dword [edx + 8], esi
mov esi, dword [edx + 4]
lea eax, [esi + 1]
fnstcw word [esp + 0x7a]
mov cx, word [esp + 0x7a]
mov ch, 8
mov word [esp + 0x78], cx
movaps xmm5, xmmword [esp + 0x20]
mov dword [edx + 4], eax
mov ecx, dword [edx]
mov eax, esi
imul eax, ecx
add eax, ebx
mov edi, eax
mov esi, dword [esp + 0x64]
rep movsb byte es:[edi], byte [esi]
inc dword [esp + 0x68]
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x54]
mov ecx, dword [ebx]
cmp eax, dword [ecx + 4]
jae 0x6c235a08
mov ebx, dword [esp + 0x50]
lea eax, [ebx + eax*4]
mov dword [esp + 0x64], eax
mov eax, dword [eax]
lea ebx, [eax + 0x20]
mov edi, ebx
mov esi, dword [esp + 0x5c]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
lea edi, [eax + 0x30]
mov dword [esp + 0x6c], edi
mov esi, dword [esp + 0x60]
mov cl, 4
rep movsd dword es:[edi], dword [esi]
fld dword [esp + 0x4c]
fmul dword [eax + 0x5c]
movaps xmm6, xmmword [eax]
fst dword [esp + 0x1c]
movss xmm0, dword [esp + 0x1c]
shufps xmm0, xmm0, 0
movaps xmm3, xmm0
movaps xmm0, xmm6
mulps xmm0, xmm3
movaps xmmword [esp + 0x80], xmm0
fld dword [esp + 0x80]
fnstcw word [esp + 0x7a]
mov cx, word [esp + 0x7a]
mov ch, 4
mov word [esp + 0x76], cx
fldcw word [esp + 0x76]
frndint
fldcw word [esp + 0x7a]
fstp dword [esp + 0x80]
fld dword [esp + 0x84]
fldcw word [esp + 0x76]
frndint
fldcw word [esp + 0x7a]
fstp dword [esp + 0x84]
fld dword [esp + 0x88]
fldcw word [esp + 0x76]
frndint
fldcw word [esp + 0x7a]
fstp dword [esp + 0x88]
fld1
fld st(0)
fdiv st(2)
fstp dword [esp + 0x58]
movss xmm1, dword [esp + 0x58]
shufps xmm1, xmm1, 0
movaps xmm0, xmm1
mulps xmm1, xmmword [esp + 0x80]
minps xmm1, xmm6
movaps xmmword [esp + 0x80], xmm1
movaps xmm2, xmmword [eax + 0x10]
movaps xmm4, xmm2
mulps xmm4, xmm3
movaps xmmword [esp + 0x90], xmm4
fld dword [esp + 0x90]
fldcw word [esp + 0x78]
frndint
fldcw word [esp + 0x7a]
fstp dword [esp + 0x90]
fld dword [esp + 0x94]
fldcw word [esp + 0x78]
frndint
fldcw word [esp + 0x7a]
fstp dword [esp + 0x94]
fld dword [esp + 0x98]
fldcw word [esp + 0x78]
frndint
fldcw word [esp + 0x7a]
fstp dword [esp + 0x98]
mulps xmm0, xmmword [esp + 0x90]
maxps xmm0, xmm2
subps xmm0, xmm1
mulps xmm0, xmm3
addps xmm0, xmm5
movaps xmm4, xmmword [eax + 0x20]
movaps xmm3, xmm0
mulps xmm3, xmm4
movaps xmm1, xmm3
shufps xmm1, xmm3, 0xc9
addps xmm1, xmm3
shufps xmm3, xmm3, 0xd2
addps xmm1, xmm3
movss dword [esp + 0x1c], xmm1
fld dword [esp + 0x1c]
fabs
movaps xmm3, xmmword [eax + 0x30]
mulps xmm0, xmm3
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xc9
addps xmm1, xmm0
shufps xmm0, xmm0, 0xd2
addps xmm1, xmm0
movss dword [esp + 0x1c], xmm1
fld dword [esp + 0x1c]
fabs
mov esi, dword [eax + 0x70]
mov ecx, dword [esi + 0x14]
add ecx, dword [esi + 4]
add ecx, dword [esi + 0x24]
add ecx, dword [esi + 0x34]
fld dword [0x6c368180]
push ecx
fimul dword [esp]
pop esi
fsqrt
fadd st(0)
fxch st(1)
fcomi st(2)
fld st(0)
fcmovnb st(0), st(3)
fdivp st(2)
fxch st(1)
fcomi st(3)
jbe 0x6c2359c8
fstp st(2)
fstp st(0)
fld dword [0x6c368184]
fcomi st(1)
fcmovnb st(0), st(1)
fstp st(1)
fmul st(2), st(0)
fxch st(2)
fst dword [esp + 0x1c]
movss xmm0, dword [esp + 0x1c]
shufps xmm0, xmm0, 0
movaps xmm7, xmm0
movaps xmm0, xmm6
mulps xmm0, xmm7
movaps xmmword [esp + 0x80], xmm0
fld dword [esp + 0x80]
fldcw word [esp + 0x76]
frndint
fldcw word [esp + 0x7a]
fstp dword [esp + 0x80]
fld dword [esp + 0x84]
fldcw word [esp + 0x76]
frndint
fldcw word [esp + 0x7a]
fstp dword [esp + 0x84]
fld dword [esp + 0x88]
fldcw word [esp + 0x76]
frndint
fldcw word [esp + 0x7a]
fstp dword [esp + 0x88]
fdivp st(1)
fstp dword [esp + 0x1c]
movss xmm1, dword [esp + 0x1c]
shufps xmm1, xmm1, 0
movaps xmm0, xmm1
mulps xmm1, xmmword [esp + 0x80]
minps xmm1, xmm6
movaps xmmword [esp + 0x80], xmm1
movaps xmm6, xmm2
mulps xmm6, xmm7
movaps xmmword [esp + 0x90], xmm6
fld dword [esp + 0x90]
fldcw word [esp + 0x78]
frndint
fldcw word [esp + 0x7a]
fstp dword [esp + 0x90]
fld dword [esp + 0x94]
fldcw word [esp + 0x78]
frndint
fldcw word [esp + 0x7a]
fstp dword [esp + 0x94]
fld dword [esp + 0x98]
fldcw word [esp + 0x78]
frndint
fldcw word [esp + 0x7a]
fstp dword [esp + 0x98]
mulps xmm0, xmmword [esp + 0x90]
maxps xmm0, xmm2
subps xmm0, xmm1
mulps xmm0, xmm7
addps xmm0, xmm5
movaps xmm2, xmm0
mulps xmm2, xmm4
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xc9
addps xmm1, xmm2
shufps xmm2, xmm2, 0xd2
addps xmm1, xmm2
movss dword [esp + 0x1c], xmm1
fld dword [esp + 0x1c]
fabs
mulps xmm0, xmm3
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xc9
addps xmm1, xmm0
shufps xmm0, xmm0, 0xd2
addps xmm1, xmm0
movss dword [esp + 0x1c], xmm1
fld dword [esp + 0x1c]
fabs
fxch st(2)
fstp dword [esp + 0x1c]
movss xmm2, dword [esp + 0x1c]
shufps xmm2, xmm2, 0
mulps xmm4, xmm2
movaps xmmword [eax + 0x20], xmm4
mulps xmm3, xmm2
movaps xmmword [eax + 0x30], xmm3
jmp 0x6c2359ce
fstp st(0)
fstp st(3)
fstp st(1)
test byte [eax + 0x58], 1
jne 0x6c235588
fld dword [0x6c368188]
fadd st(1), st(0)
fxch st(1)
fisttp dword [esp + 0x7c]
mov ebx, dword [esp + 0x7c]
add ebx, 2
faddp st(1)
fisttp dword [esp + 0x7c]
mov ecx, dword [esp + 0x7c]
add ecx, 2
jmp 0x6c2355b9
mov ebx, dword [edx + 0xc]
jmp 0x6c23566c
inc dword [esp + 0x48]
cmp dword [esp + 0x48], 6
jne 0x6c23553c
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x60], ebx
mov esi, dword [edx + 4]
mov dword [esp + 0x64], esi
test esi, esi
je 0x6c235baf
xor ebx, ebx
xor eax, eax
mov dword [esp + 0x6c], 0
xor ecx, ecx
mov dword [esp + 0x68], 0
xor esi, esi
mov dword [esp + 0x5c], edx
lea esi, [esi]
mov edi, dword [esp + 0x60]
mov edx, dword [edi + ebx*4]
mov ebx, dword [edx + 0x68]
mov edx, dword [edx + 0x6c]
mov edi, ebx
imul edi, edx
add dword [esp + 0x68], edi
cmp ecx, ebx
cmovl ecx, ebx
cmp esi, edx
cmovl esi, edx
inc eax
mov ebx, eax
cmp eax, dword [esp + 0x64]
jne 0x6c235a4c
mov dword [esp + 0x6c], esi
mov edx, dword [esp + 0x5c]
fild dword [esp + 0x68]
fld st(0)
fsqrt
fldcw word [esp + 0x78]
frndint
fldcw word [esp + 0x7a]
fmul dword [esp + 0x40]
fisttp dword [esp + 0x7c]
mov esi, dword [esp + 0x7c]
cmp esi, ecx
cmovl esi, ecx
mov eax, 8
mov dword [esp + 0x5c], edx
jmp 0x6c235aae
mov eax, ebx
lea ebx, [eax + eax]
mov edi, esi
sub edi, eax
mov edx, ebx
sub edx, esi
cmp edi, edx
jge 0x6c235aac
mov edx, dword [esp + 0x5c]
cmp ecx, eax
cmovg eax, ebx
push eax
fidiv dword [esp]
pop ecx
fldcw word [esp + 0x78]
frndint
fldcw word [esp + 0x7a]
fmul dword [esp + 0x40]
fisttp dword [esp + 0x7c]
mov esi, dword [esp + 0x7c]
cmp esi, dword [esp + 0x6c]
cmovl esi, dword [esp + 0x6c]
mov ebx, 8
mov dword [esp + 0x5c], eax
jmp 0x6c235afa
mov ebx, ecx
lea ecx, [ebx + ebx]
mov edi, esi
sub edi, ebx
mov eax, ecx
sub eax, esi
cmp edi, eax
jge 0x6c235af8
mov eax, dword [esp + 0x5c]
cmp dword [esp + 0x6c], ebx
cmovg ebx, ecx
mov esi, dword [0x6c453040]
test esi, esi
je 0x6c235b28
cmp eax, ebx
jle 0x6c235ba8
mov ebx, eax
cmp eax, 0x800
jg 0x6c235b98
cmp ebx, 0x800
jg 0x6c235b98
mov ecx, eax
imul ecx, ebx
cmp ecx, dword [esp + 0x68]
jge 0x6c235b50
cmp eax, ebx
jle 0x6c23601a
shl ebx, 1
jmp 0x6c235b50
fstp st(0)
test esi, esi
je 0x6c235b5a
cmp eax, ebx
jle 0x6c235bc8
mov ebx, eax
mov ecx, eax
imul ecx, ebx
cmp ecx, dword [esp + 0x68]
jge 0x6c235bd5
lea esi, [esi]
mov ebx, dword [esp + 0x60]
mov eax, dword [ebx - 4]
mov dword [esp], eax
mov dword [esp + 0x30], edx
movaps xmmword [esp + 0x20], xmm5
call sub.msvcrt.dll_free
mov edx, dword [esp + 0x30]
mov dword [esp], edx
call fcn.6c2df6f4
movaps xmm5, xmmword [esp + 0x20]
jmp 0x6c2354cc
fld dword [esp + 0x4c]
fmul dword [0x6c36818c]
fstp dword [esp + 0x4c]
jmp 0x6c235b68
mov eax, ebx
jmp 0x6c235b28
fldz
mov dword [esp + 0x6c], 0
xor ecx, ecx
mov dword [esp + 0x68], 0
jmp 0x6c235a81
mov eax, ebx
mov ecx, eax
imul ecx, ebx
cmp ecx, dword [esp + 0x68]
jl 0x6c235b68
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], edx
cmp eax, 0x800
jle 0x6c235bf0
cmp ebx, 0x800
jg 0x6c236317
mov dword [esp + 0xc], 0x6c2351dc
mov dword [esp + 8], 4
mov esi, dword [esp + 0x64]
mov dword [esp + 4], esi
mov edi, dword [esp + 0x60]
mov dword [esp], edi
call sub.msvcrt.dll_qsort
mov edi, dword [0x6c453040]
test edi, edi
jne 0x6c235d9e
cmp ebx, dword [esp + 0x48]
jge 0x6c2362fd
mov eax, dword [esp + 0x48]
shr eax, 0x1f
add eax, dword [esp + 0x48]
sar eax, 1
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ebx
mov dword [esp], 0xc
call fcn.6c2df72c
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x68]
mov dword [eax], edx
mov ecx, dword [esp + 0x64]
mov dword [eax + 4], ecx
mov dword [esp], 0x10
call fcn.6c2df72c
mov esi, eax
mov dword [eax], 0x10
mov dword [eax + 8], 0x20
mov dword [esp], 0x213
call sub.msvcrt.dll_malloc
mov edx, eax
lea eax, [eax + 0x13]
and eax, 0xfffffff0
mov dword [eax - 4], edx
mov dword [esi + 0xc], eax
mov edi, dword [esp + 0x54]
mov dword [edi + 8], esi
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov edx, dword [esp + 0x68]
mov dword [esp + 0xa8], edx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xac], ecx
mov dword [esi + 4], 1
lea esi, [esp + 0xa0]
mov ecx, 4
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x40]
mov esi, dword [eax + 4]
test esi, esi
je 0x6c236200
xor eax, eax
xor edi, edi
jmp 0x6c235d04
inc edi
mov eax, edi
mov edx, dword [esp + 0x40]
cmp edi, dword [edx + 4]
jae 0x6c236200
mov edx, dword [esp + 0x60]
lea esi, [edx + eax*4]
mov eax, dword [esi]
add eax, 0x60
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.6c2dc03c
test eax, eax
jne 0x6c235cf4
mov eax, dword [esi]
xor edx, edx
mov ecx, dword [eax + 0x54]
test ecx, ecx
sete dl
mov dword [eax + 0x54], edx
mov edx, dword [eax + 0x68]
mov ecx, dword [eax + 0x6c]
mov dword [eax + 0x68], ecx
mov dword [eax + 0x6c], edx
add eax, 0x60
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.6c2dc03c
test eax, eax
jne 0x6c235cf4
mov eax, dword [esi]
xor edx, edx
mov edi, dword [eax + 0x54]
test edi, edi
sete dl
mov dword [eax + 0x54], edx
mov edx, dword [eax + 0x68]
mov ecx, dword [eax + 0x6c]
mov dword [eax + 0x68], ecx
mov dword [eax + 0x6c], edx
mov eax, dword [esp + 0x54]
mov esi, dword [eax + 8]
test esi, esi
je 0x6c235d92
mov eax, dword [esi + 0xc]
mov eax, dword [eax - 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp], esi
call fcn.6c2df6f4
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.6c2df6f4
mov dword [esp], 0xc
call fcn.6c2df72c
mov dword [esp + 0x54], eax
mov dword [esp + 8], ebx
mov edi, dword [esp + 0x48]
mov dword [esp + 4], edi
mov dword [esp], eax
call fcn.6c2dc4c0
mov eax, dword [esp + 0x40]
mov esi, dword [eax + 4]
test esi, esi
je 0x6c236082
xor edx, edx
xor edi, edi
mov ecx, dword [esp + 0x60]
lea esi, [ecx + edx*4]
mov eax, dword [esi]
add eax, 0x60
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.6c2dc03c
test eax, eax
jne 0x6c235e2b
mov eax, dword [esi]
xor edx, edx
mov ecx, dword [eax + 0x54]
test ecx, ecx
sete dl
mov dword [eax + 0x54], edx
mov edx, dword [eax + 0x68]
mov ecx, dword [eax + 0x6c]
mov dword [eax + 0x68], ecx
mov dword [eax + 0x6c], edx
add eax, 0x60
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.6c2dc03c
test eax, eax
je 0x6c2360e6
inc edi
mov edx, edi
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 4]
cmp edi, eax
jb 0x6c235dd5
test eax, eax
je 0x6c236082
fld1
fld st(0)
push ebx
fidiv dword [esp]
fxch st(1)
pop eax
fidiv dword [esp + 0x48]
fstp dword [esp + 0x64]
mov esi, dword [ebp + 8]
mov esi, dword [esi + 0x1c]
mov dword [esp + 0x50], esi
mov edi, dword [ebp + 8]
mov edi, dword [edi + 0x18]
mov dword [esp + 0x38], edi
xor eax, eax
mov dword [esp + 0x3c], 0
fld dword [0x6c368194]
fxch st(1)
mov dword [esp + 0x34], ebx
fstp dword [esp + 0x6c]
fld dword [esp + 0x4c]
mov ebx, dword [esp + 0x60]
mov edx, dword [ebx + eax*4]
mov esi, dword [edx + 0x50]
mov dword [esp + 0x58], esi
mov edi, dword [esi + 4]
test edi, edi
je 0x6c236065
mov ecx, dword [esi]
mov edi, dword [esp + 0x38]
mov edi, dword [edi + 0xc]
mov dword [esp + 0x44], edi
xor eax, eax
mov dword [esp + 0x5c], 0
nop
imul eax, ecx
mov ebx, dword [esp + 0x58]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + eax]
lea eax, [eax + eax*2]
mov esi, dword [esp + 0x44]
lea ecx, [esi + eax*4]
mov eax, dword [ecx + 4]
mov edi, dword [ecx + 8]
test edi, edi
jle 0x6c2361d0
mov ecx, dword [esp + 0x50]
mov esi, dword [ecx]
imul eax, esi
add eax, dword [ecx + 0xc]
mov dword [esp + 0x70], 0
mov ebx, dword [edx + 0x64]
mov dword [esp + 0x4c], ebx
mov ebx, dword [edx + 0x58]
mov ecx, dword [edx + 0x60]
inc ecx
mov dword [esp + 0x68], ecx
fild dword [esp + 0x68]
mov ecx, dword [esp + 0x4c]
inc ecx
mov dword [esp + 0x68], ecx
fild dword [esp + 0x68]
and ebx, 1
xor ecx, ecx
mov dword [esp + 0x4c], esi
jmp 0x6c235f74
mov esi, dword [edx + 0x68]
sub esi, 2
mov dword [esp + 0x68], esi
fcompi st(1)
fild dword [esp + 0x68]
ja 0x6c2361c4
fldz
fcompi st(3)
jae 0x6c2361ac
fadd st(4)
fsubrp st(1)
fstp dword [eax]
fadd st(1)
fstp dword [eax + 4]
test ebx, ebx
jne 0x6c236004
fld dword [eax]
fld dword [eax + 4]
fxch st(1)
fmul dword [esp + 0x64]
fstp dword [eax]
fmul dword [esp + 0x6c]
fstp dword [eax + 4]
inc ecx
add eax, dword [esp + 0x4c]
cmp ecx, edi
je 0x6c2361cc
movaps xmm0, xmmword [eax]
subps xmm0, xmmword [edx + 0x40]
fld dword [edx + 0x5c]
fmul st(3)
fstp dword [esp + 0x68]
movss xmm2, dword [esp + 0x68]
shufps xmm2, xmm2, 0
mulps xmm0, xmm2
movaps xmm2, xmmword [edx + 0x20]
mulps xmm2, xmm0
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xc9
addps xmm1, xmm2
shufps xmm2, xmm2, 0xd2
addps xmm1, xmm2
movss dword [esp + 0x1c], xmm1
fld dword [esp + 0x1c]
mulps xmm0, xmmword [edx + 0x30]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xc9
addps xmm1, xmm0
shufps xmm0, xmm0, 0xd2
addps xmm1, xmm0
movss dword [esp + 0x1c], xmm1
fld dword [esp + 0x1c]
fldz
mov esi, dword [edx + 0x54]
test esi, esi
jne 0x6c235f20
fcompi st(2)
jae 0x6c236194
fldz
fcompi st(1)
ja 0x6c23617c
fxch st(1)
fadd st(3)
fstp dword [eax]
fadd st(1)
fstp dword [eax + 4]
test ebx, ebx
je 0x6c235f53
fld st(3)
fiadd dword [edx + 0x60]
fst dword [eax]
fld st(4)
fiadd dword [edx + 0x64]
fst dword [eax + 4]
fxch st(1)
jmp 0x6c235f5a
cmp eax, 8
je 0x6c2361f6
cmp ebx, 8
je 0x6c2361ec
fld dword [0x6c368124]
fld dword [esp + 0x40]
fmul st(1)
fst dword [esp + 0x40]
fld dword [0x6c368190]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x6c235b4e
fld dword [esp + 0x4c]
fmul dword [0x6c36818c]
fstp dword [esp + 0x4c]
fstp dword [esp + 0x40]
jmp 0x6c235b50
inc dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
cmp eax, dword [edx + 4]
jb 0x6c235e86
fstp st(0)
fstp st(0)
mov ebx, dword [esp + 0x34]
mov eax, dword [esp + 0x54]
test eax, eax
je 0x6c2360b7
mov eax, dword [esp + 0x54]
mov esi, dword [eax + 8]
test esi, esi
je 0x6c2360ab
mov eax, dword [esi + 0xc]
mov eax, dword [eax - 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [esp], esi
call fcn.6c2df6f4
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.6c2df6f4
mov edx, dword [esp + 0x40]
mov eax, dword [edx + 0xc]
mov eax, dword [eax - 4]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.6c2df6f4
mov eax, dword [esp + 0x48]
shl eax, 0x10
or eax, ebx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esi]
xor edx, edx
mov ecx, dword [eax + 0x54]
test ecx, ecx
sete dl
mov dword [eax + 0x54], edx
mov edx, dword [eax + 0x68]
mov ecx, dword [eax + 0x6c]
mov dword [eax + 0x68], ecx
mov dword [eax + 0x6c], edx
cmp ecx, 3
jg 0x6c23610f
cmp edx, 3
jle 0x6c235e2b
fld dword [0x6c368188]
fld dword [eax + 0x5c]
fmul st(1)
fstp dword [eax + 0x5c]
sub ecx, 2
fld st(0)
push ecx
fimul dword [esp]
fnstcw word [esp + 0x7e]
mov cx, word [esp + 0x7e]
mov ch, 8
mov word [esp + 0x7c], cx
fldcw word [esp + 0x7c]
frndint
fldcw word [esp + 0x7e]
fisttp dword [esp + 0x80]
mov ecx, dword [esp + 0x80]
add ecx, 2
mov dword [eax + 0x68], ecx
sub edx, 2
mov dword [esp], edx
fimul dword [esp]
pop edx
fldcw word [esp + 0x78]
frndint
fldcw word [esp + 0x7a]
fisttp dword [esp + 0x7c]
mov edx, dword [esp + 0x7c]
add edx, 2
mov dword [eax + 0x6c], edx
jmp 0x6c235dde
mov esi, dword [edx + 0x6c]
sub esi, 2
mov dword [esp + 0x68], esi
fiadd dword [esp + 0x68]
fxch st(1)
jmp 0x6c235ff3
fxch st(1)
mov esi, dword [edx + 0x68]
sub esi, 2
mov dword [esp + 0x68], esi
fiadd dword [esp + 0x68]
fxch st(1)
jmp 0x6c235fe7
fxch st(2)
mov esi, dword [edx + 0x6c]
sub esi, 2
mov dword [esp + 0x68], esi
fiadd dword [esp + 0x68]
fxch st(2)
jmp 0x6c235f40
fadd st(1), st(0)
jmp 0x6c235f36
fstp st(0)
fstp st(0)
inc dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
cmp eax, dword [edi + 4]
jae 0x6c236065
mov ecx, dword [edi]
jmp 0x6c235eb8
mov ebx, 0x10
jmp 0x6c235b50
mov eax, 0x10
jmp 0x6c235b50
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx + 4]
mov ebx, dword [esp + 0x64]
mov esi, dword [esp + 0x68]
mov dword [esp + 0x48], esi
jmp 0x6c235e39
mov dword [esp], 0x6c45c1c0
call fcn.6c2dfdc0
test eax, eax
je 0x6c2354b9
movaps xmm0, xmmword [0x6c368170]
movaps xmmword [0x6c45c1e0], xmm0
movaps xmmword [0x6c45c1f0], xmm0
movaps xmm1, xmmword [0x6c368160]
movaps xmmword [0x6c45c200], xmm1
movaps xmmword [0x6c45c210], xmm0
movaps xmmword [0x6c45c220], xmm0
movaps xmmword [0x6c45c230], xmm1
mov dword [esp], 0x6c45c1c0
call fcn.6c2dfebc
jmp 0x6c2354b9
mov dword [esp], 0x6c45c140
call fcn.6c2dfdc0
test eax, eax
je 0x6c2354ac
movaps xmm0, xmmword [0x6c368130]
movaps xmmword [0x6c45c160], xmm0
movss xmm0, dword [0x6c368140]
movaps xmmword [0x6c45c170], xmm0
movss xmm1, dword [0x6c368150]
movaps xmmword [0x6c45c180], xmm1
movaps xmm2, xmmword [0x6c368160]
movaps xmmword [0x6c45c190], xmm2
movaps xmmword [0x6c45c1a0], xmm1
movaps xmmword [0x6c45c1b0], xmm0
mov dword [esp], 0x6c45c140
call fcn.6c2dfebc
jmp 0x6c2354ac
mov eax, ebx
shr eax, 0x1f
add eax, ebx
sar eax, 1
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x68], eax
jmp 0x6c235c41
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret