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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x5c
mov eax, dword [ecx + 0xc]
xor esi, esi
mov edi, eax
shr edi, 2
cmp di, dx
jbe 0x6ec899
movzx edx, dx
lea edi, [edx*4 + 4]
cmp edi, eax
ja 0x6ec899
mov eax, dword [ecx + 8]
shl edx, 2
mov ebp, dword [ecx + 4]
mov edi, dword [eax + edx]
bswap edi
cmp edi, ebp
ja 0x6ec899
mov ebx, dword [ecx]
test ebx, ebx
je 0x6ec899
cmp edi, 0xfffffffd
ja 0x6ec899
lea edx, [edi + 2]
cmp edx, ebp
ja 0x6ec899
lea eax, [edi + 4]
cmp eax, edx
jb 0x6ec899
cmp eax, ebp
ja 0x6ec899
lea edx, [edi + 6]
cmp edx, eax
jb 0x6ec899
cmp edx, ebp
ja 0x6ec899
movzx eax, word [ebx + eax]
mov dword [esp + 0x20], edx
rol ax, 8
mov word [esp + 0xe], ax
movzx eax, ax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x38]
lea edx, [eax + eax]
mov dword [esp + 0x2c], edx
add edx, dword [esp + 0x20]
jb 0x6ec899
cmp edx, ebp
ja 0x6ec899
mov dword [esp], edx
movzx edx, word [ebx + edi]
movzx eax, word [esp + 0x70]
rol dx, 8
cmp dx, ax
jbe 0x6ec899
movzx edx, word [ebx + edi + 2]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x34], ebp
movzx eax, ax
mov ebx, edx
mov word [esp + 8], dx
rol bx, 8
movzx ebp, bx
add ebp, dword [esp + 0x38]
mul ebp
mov ebp, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [esp]
jo 0x6ec899
add edx, dword [esp + 0x1c]
add eax, dword [esp + 4]
mov esi, dword [esp + 0x78]
cmp word [esp + 8], 0
mov dword [esp + 0x20], edx
je 0x6ec5ed
mov dword [esp], eax
mov eax, dword [ecx + 0x14]
mov edx, 0xaaaaaaab
mov dword [esp + 0x44], eax
mul edx
cmp bx, 2
mov eax, 1
cmovae eax, ebx
test esi, esi
mov dword [esp + 0x48], eax
je 0x6ec5f4
movzx eax, ax
shr edx, 2
mov edi, dword [ecx + 0x10]
movss xmm1, dword [0x7255e0]
xorps xmm0, xmm0
xor ebx, ebx
mov dword [esp + 0x50], eax
lea eax, [esi + esi]
mov dword [esp + 0x28], edx
movzx edx, word [ecx + 0x18]
xor esi, esi
mov dword [esp + 0x4c], eax
mov eax, dword [esp]
mov dword [esp + 8], edi
mov dword [esp + 0x54], edx
jmp 0x6ec448
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0x34]
mov eax, dword [esp]
mulss xmm4, xmm2
addss xmm0, xmm4
inc ebx
cmp ebx, dword [esp + 0x50]
je 0x6ec659
cmp ebx, dword [esp + 0x38]
je 0x6ec899
mov edx, dword [esp + 0x1c]
cmp eax, 0xfffffffd
ja 0x6ec899
lea edi, [eax + 2]
cmp edi, ebp
mov dword [esp], edi
ja 0x6ec899
mov edi, dword [esp + 0x20]
movzx eax, word [edx + eax]
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x58], ebx
movaps xmm3, xmm1
movzx edi, word [edi + ebx*2]
rol ax, 8
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x10], ebp
cwde
xorps xmm2, xmm2
cvtsi2ss xmm2, eax
rol di, 8
mov dword [esp + 0x30], ebx
imul edi, dword [esp + 0x54]
movzx eax, di
lea eax, [eax + eax*2]
lea edx, [eax + eax + 6]
jmp 0x6ec4cc
add dword [esp + 0x30], 2
add edx, 6
inc edi
add dword [esp + 0x10], 0xfffffffe
mulss xmm3, xmm5
movaps xmm4, xmm3
je 0x6ec42a
cmp di, word [esp + 0x28]
xorps xmm4, xmm4
jae 0x6ec42a
cmp edx, dword [esp + 0x44]
ja 0x6ec42a
mov eax, dword [esp + 8]
movaps xmm5, xmm1
movzx ebp, word [eax + edx - 6]
movzx eax, word [eax + edx - 4]
mov ebx, eax
rol bp, 8
mov word [esp + 0x14], ax
rol bx, 8
mov dword [esp + 4], ebp
cmp bx, bp
jl 0x6ec4b1
mov eax, dword [esp + 8]
movaps xmm5, xmm1
movzx ebp, word [eax + edx - 2]
rol bp, 8
cmp bp, bx
jl 0x6ec4b1
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x30]
cmp word [esp + 4], 0
movaps xmm5, xmm1
movzx eax, word [edi]
mov edi, dword [esp + 0x40]
sets byte [esp + 0x24]
test bp, bp
setg byte [esp + 0x3c]
cmp bx, ax
mov dword [esp + 0x18], eax
je 0x6ec4b1
cmp word [esp + 0x14], 0
movaps xmm5, xmm1
je 0x6ec4b1
movzx eax, byte [esp + 0x3c]
movaps xmm5, xmm1
and byte [esp + 0x24], al
jne 0x6ec4b1
mov eax, dword [esp + 0x18]
cmp ax, word [esp + 4]
jle 0x6ec42a
cmp bp, ax
jle 0x6ec42a
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], ebp
sub ebp, ebx
sub dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 4]
mov dword [esp + 0x24], eax
mov eax, ebx
sub eax, dword [esp + 4]
cmp bx, word [esp + 0x18]
mov ebx, eax
mov eax, dword [esp + 0x24]
cmovle ebx, ebp
movsx ebp, bx
xorps xmm4, xmm4
cvtsi2ss xmm4, ebp
cmovle eax, dword [esp + 0x14]
cwde
xorps xmm5, xmm5
cvtsi2ss xmm5, eax
divss xmm5, xmm4
xorps xmm4, xmm4
ucomiss xmm5, xmm4
jne 0x6ec4b1
jp 0x6ec4b1
jmp 0x6ec42a
xorps xmm0, xmm0
xor edi, edi
jmp 0x6ec661
mov edx, dword [esp]
add edi, dword [esp + 4]
movzx eax, ax
xorps xmm0, xmm0
xor esi, esi
add eax, eax
add edx, dword [esp + 0x1c]
add edi, dword [esp + 0x2c]
mov dword [esp], edx
xor edx, edx
cmp dword [esp + 0x2c], edx
je 0x6ec899
lea ebx, [edi + edx + 6]
cmp ebx, 0xfffffffd
ja 0x6ec899
lea ebx, [edi + edx + 8]
cmp ebx, ebp
ja 0x6ec899
mov ebx, dword [esp]
movzx ebx, word [ebx + edx]
add edx, 2
rol bx, 8
cmp eax, edx
movsx ebx, bx
xorps xmm1, xmm1
cvtsi2ss xmm1, ebx
addss xmm0, xmm1
jne 0x6ec612
lea eax, [edx + edi + 6]
mov esi, dword [esp + 0x78]
mov edi, dword [esp + 0x48]
cmp di, word [esp + 0xe]
jae 0x6ec892
mov ebx, edi
mov edi, esi
mov esi, eax
mov eax, dword [ecx + 0x14]
mov edx, 0xaaaaaaab
mov dword [esp + 0x14], eax
mul edx
test edi, edi
je 0x6ec859
mov eax, dword [ecx + 0x10]
movss xmm1, dword [0x7255e0]
shr edx, 2
add edi, edi
movzx ebx, bx
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], edi
mov dword [esp + 4], eax
movzx eax, word [ecx + 0x18]
mov dword [esp + 0x3c], eax
mov eax, esi
jmp 0x6ec6d2
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x34]
mov eax, dword [esp]
mulss xmm4, xmm2
addss xmm0, xmm4
inc ebx
cmp word [esp + 0xe], bx
je 0x6ec892
lea ecx, [ebx + ebx + 2]
xor esi, esi
cmp ecx, dword [esp + 0x2c]
ja 0x6ec899
mov edx, dword [esp + 0x20]
mov ecx, eax
inc ecx
je 0x6ec899
cmp ecx, ebp
ja 0x6ec899
mov dword [esp], ecx
lea ecx, [ebx + ebx]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x74]
movaps xmm3, xmm1
movzx esi, word [edx + ecx]
mov ecx, dword [esp + 0x1c]
rol si, 8
movsx eax, byte [ecx + eax]
mov ecx, dword [esp + 0x24]
imul esi, dword [esp + 0x3c]
xorps xmm2, xmm2
cvtsi2ss xmm2, eax
mov dword [esp + 0x30], ecx
movzx eax, si
lea eax, [eax + eax*2]
lea edi, [eax + eax + 6]
jmp 0x6ec751
add ebx, 2
add edi, 6
inc esi
add dword [esp + 0x30], 0xfffffffe
mulss xmm3, xmm5
movaps xmm4, xmm3
je 0x6ec6b3
cmp si, word [esp + 0x18]
xorps xmm4, xmm4
jae 0x6ec6b3
cmp edi, dword [esp + 0x14]
ja 0x6ec6b3
mov eax, dword [esp + 4]
movaps xmm5, xmm1
movzx ecx, word [eax + edi - 4]
movzx ebp, word [eax + edi - 6]
mov eax, ecx
rol bp, 8
rol ax, 8
cmp ax, bp
jl 0x6ec738
mov edx, dword [esp + 4]
movaps xmm5, xmm1
movzx edx, word [edx + edi - 2]
rol dx, 8
cmp dx, ax
jl 0x6ec738
mov word [esp + 0x10], cx
movzx ecx, word [ebx]
test bp, bp
movaps xmm5, xmm1
sets byte [esp + 0x28]
test dx, dx
setg byte [esp + 0x44]
mov dword [esp + 8], ecx
cmp ax, cx
movzx ecx, word [esp + 0x10]
je 0x6ec738
test cx, cx
movaps xmm5, xmm1
je 0x6ec738
movzx ecx, byte [esp + 0x44]
movaps xmm5, xmm1
and byte [esp + 0x28], cl
jne 0x6ec738
mov ecx, dword [esp + 8]
cmp cx, bp
jle 0x6ec6b3
cmp dx, cx
jle 0x6ec6b3
mov ecx, edx
mov dword [esp + 0x10], eax
sub edx, eax
sub dword [esp + 0x10], ebp
sub ecx, dword [esp + 8]
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 8]
sub ecx, ebp
cmp ax, word [esp + 8]
mov ebp, dword [esp + 0x10]
cmovle ecx, dword [esp + 0x28]
cmovle ebp, edx
movsx eax, cx
movsx ecx, bp
xorps xmm5, xmm5
cvtsi2ss xmm5, eax
xorps xmm4, xmm4
cvtsi2ss xmm4, ecx
divss xmm5, xmm4
xorps xmm4, xmm4
ucomiss xmm5, xmm4
jne 0x6ec738
jp 0x6ec738
jmp 0x6ec6b3
mov ecx, esi
xor esi, esi
inc ecx
movzx eax, bx
lea eax, [eax + eax + 2]
cmp eax, dword [esp + 0x2c]
ja 0x6ec899
test ecx, ecx
je 0x6ec899
cmp ecx, ebp
ja 0x6ec899
mov eax, dword [esp + 0x1c]
mov edx, ebx
inc ebx
movsx eax, byte [eax + ecx - 1]
inc ecx
cmp word [esp + 0xe], bx
xorps xmm1, xmm1
cvtsi2ss xmm1, eax
addss xmm0, xmm1
jne 0x6ec85e
mov esi, 1
jmp 0x6ec899
mov eax, esi
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret