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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x98
mov eax, dword [0x1008c00c]
xor eax, esp
mov dword [esp + 0x94], eax
mov eax, dword [0x10090d48]
push esi
push edi
mov edi, ecx
mov dword [esp + 8], eax
xor esi, esi
mov dword [esp + 0x30], edi
push 3
mov dword [esp + 0x24], esi
lea esi, [esp + 0x7c]
mov byte [edi + 0x67], 0
mov byte [esp + 0x18], 0
pop edi
mov ecx, esi
call fcn.10060a64
add esi, 0xc
sub edi, 1
jne 0x10060f6b
and dword [esp + 0xc], edi
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x24], 1
mov eax, dword [edi]
test eax, eax
jle 0x100610b0
and dword [esp + 0x10], 0
xor edx, edx
mov dword [esp + 0x18], edx
mov ecx, dword [edi + 8]
add edx, ecx
mov dword [esp + 0x28], ecx
mov eax, dword [edx + 8]
cmp eax, dword [edi + 0x24]
jl 0x10061071
cmp byte [edx + 0x28], 0
jne 0x10061071
cmp esi, dword [esp + 0xc]
je 0x10060ff3
push 0xb
pop ecx
mov esi, edx
lea edi, [esp + 0x48]
mov edx, dword [esp + 0x10]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x28]
lea esi, [esp + 0x48]
push 0xb
add edi, edx
pop ecx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x20]
mov ecx, dword [edi + 8]
jmp 0x10060ff7
mov edx, dword [esp + 0x10]
mov eax, dword [edx + ecx + 4]
mov word [edx + ecx + 0x26], si
test al, 0x40
je 0x10061008
xor ecx, ecx
jmp 0x10061011
test al, 0x80
push 0
pop ecx
setne cl
inc ecx
test esi, esi
jle 0x1006105c
mov eax, dword [edi + 8]
mov eax, dword [edx + eax - 0x28]
test al, 0x40
je 0x10061024
xor eax, eax
jmp 0x1006102d
test al, 0x80
push 0
pop eax
setne al
inc eax
mov edx, dword [esp + 0x14]
test ecx, ecx
jne 0x10061043
test eax, eax
movzx edx, dl
cmovne edx, dword [esp + 0x24]
mov dword [esp + 0x14], edx
cmp eax, 2
jne 0x10061058
movzx eax, dl
cmp ecx, 2
push 1
pop edx
cmovne eax, edx
mov byte [esp + 0x14], al
mov edx, dword [esp + 0x10]
imul eax, ecx, 0xc
inc dword [esp + eax + 0x78]
inc esi
add edx, 0x2c
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], edx
jmp 0x10061092
mov eax, dword [edi + 0x1c]
cmp eax, dword [edx]
jne 0x1006107c
and dword [edi + 0x1c], 0
mov eax, dword [edi + 0x14]
cmp eax, dword [edx]
jne 0x10061087
and dword [edi + 0x14], 0
mov eax, dword [edi + 0x18]
cmp eax, dword [edx]
jne 0x10061092
and dword [edi + 0x18], 0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x18]
inc ecx
mov eax, dword [edi]
add edx, 0x2c
mov dword [esp + 0xc], ecx
mov dword [esp + 0x18], edx
cmp ecx, eax
jl 0x10060fa3
cmp eax, esi
je 0x100610e1
mov eax, dword [edi + 4]
cmp esi, eax
jle 0x100610dd
test eax, eax
je 0x100610cb
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
add ecx, dword [edi + 4]
jmp 0x100610ce
push 8
pop ecx
cmp ecx, esi
mov eax, esi
cmovg eax, ecx
mov ecx, edi
push eax
call fcn.10062f67
mov dword [edi], esi
mov eax, esi
cmp byte [esp + 0x14], 0
je 0x10061103
xor ecx, ecx
inc ecx
cmp eax, ecx
jbe 0x10061103
push 0x10060ab8
push 0x2c
push eax
push dword [edi + 8]
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_qsort]
add esp, 0x10
cmp dword [esp + 0x78], 0
jle 0x1006112a
mov eax, dword [esp + 0x84]
add eax, dword [esp + 0x90]
test eax, eax
jle 0x1006112a
mov eax, dword [esp + 8]
movss xmm0, dword [eax + 0x37ec]
jmp 0x10061131
mov eax, dword [esp + 8]
xorps xmm0, xmm0
cmp dword [esp + 0x84], 0
movss dword [esp + 0x80], xmm0
jle 0x10061158
cmp dword [esp + 0x90], 0
jle 0x10061158
movss xmm0, dword [eax + 0x37ec]
jmp 0x1006115b
xorps xmm0, xmm0
xor esi, esi
movss dword [esp + 0x8c], xmm0
mov dword [esp + 0x10], esi
cmp dword [edi + 0x18], esi
je 0x1006117d
mov esi, dword [edi + 0x18]
and dword [edi + 0x18], 0
mov dword [esp + 0x10], esi
mov dword [edi + 0x14], esi
cmp dword [edi + 0x60], 0
je 0x1006119f
mov ecx, edi
call fcn.10061af0
test al, al
je 0x1006119b
mov eax, dword [edi + 0x60]
cmp eax, dword [edi + 0x14]
cmove esi, eax
mov dword [esp + 0x10], esi
and dword [edi + 0x60], 0
mov eax, dword [edi + 0xc]
shr eax, 2
test al, 1
je 0x100611bd
mov ecx, edi
call fcn.10061de5
test eax, eax
je 0x100611bd
mov esi, dword [eax]
mov dword [esp + 0x10], esi
mov dword [edi + 0x14], esi
mov ecx, dword [esp + 0x78]
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 8]
add eax, ecx
and dword [esp + 0x34], 0
mov dword [esp + 0x38], eax
mov eax, dword [edi]
mov dword [esp + 0x3c], ecx
mov ecx, dword [edx + 0x4a50]
mov dword [esp + 0x14], eax
cmp eax, ecx
jle 0x10061275
test ecx, ecx
je 0x10061202
mov eax, ecx
cdq
sub eax, edx
mov edx, dword [esp + 8]
sar eax, 1
add eax, ecx
jmp 0x10061205
push 8
pop eax
mov ecx, dword [esp + 0x14]
cmp eax, ecx
cmovg ecx, eax
mov dword [esp + 0x18], ecx
cmp ecx, dword [edx + 0x4a50]
jle 0x10061271
imul ecx, ecx, 0xc
call fcn.10006cd0
mov edx, dword [esp + 8]
mov dword [esp + 0x28], eax
cmp dword [edx + 0x4a54], 0
je 0x10061261
imul ecx, dword [edx + 0x4a4c], 0xc
push ecx
push dword [edx + 0x4a54]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [esp + 0x14]
add esp, 0xc
mov ecx, dword [ecx + 0x4a54]
call fcn.10006cee
mov edx, dword [esp + 8]
mov eax, dword [esp + 0x28]
mov dword [edx + 0x4a54], eax
mov eax, dword [esp + 0x18]
mov dword [edx + 0x4a50], eax
mov eax, dword [esp + 0x14]
or dword [esp + 0x18], 0xffffffff
mov dword [edx + 0x4a4c], eax
xor eax, eax
mov dword [esp + 0x14], eax
mov byte [esp + 0x20], al
mov dword [esp + 0xc], eax
cmp dword [edi], eax
jle 0x100613cf
mov ecx, eax
mov dword [esp + 0x28], eax
add ecx, dword [edi + 8]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
test eax, eax
je 0x100612b7
mov eax, dword [eax + 0xc]
cmp eax, dword [ecx + 0xc]
jge 0x100612c5
mov eax, dword [esp + 0x14]
test dword [ecx + 4], 0x200000
cmove eax, ecx
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x20]
mov eax, dword [ecx]
cmp eax, dword [edi + 0x14]
movzx edx, dl
cmove edx, dword [esp + 0x24]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 8]
test esi, esi
jne 0x100612eb
cmp dword [edx + 0x47c8], eax
cmove esi, eax
mov edx, dword [ecx + 0x20]
xorps xmm0, xmm0
movss xmm1, dword [ecx + 0x1c]
add edx, dword [edi + 0x8c]
comiss xmm1, xmm0
mov eax, dword [ecx + 4]
jae 0x1006132d
and eax, 0x100001
lea ecx, [esp + 0x40]
cmp eax, 0x100000
setne al
movzx eax, al
push eax
call fcn.10062869
pop ecx
mov ecx, dword [esp + 0x10]
xorps xmm0, xmm0
movss xmm1, dword [eax]
mov eax, dword [ecx + 4]
movss dword [ecx + 0x18], xmm1
test al, 0x40
je 0x1006133a
xor edx, edx
jmp 0x10061343
test al, 0x80
push 0
pop edx
setne dl
inc edx
imul eax, edx, 0xc
cmp edx, dword [esp + 0x18]
jne 0x10061358
mov ecx, dword [esp + 8]
movss xmm0, dword [ecx + 0x37ec]
mov ecx, dword [esp + edx*4 + 0x34]
addss xmm0, xmm1
mov dword [esp + 0x18], edx
addss xmm0, dword [esp + eax + 0x7c]
movss dword [esp + eax + 0x7c], xmm0
lea eax, [ecx + 1]
mov dword [esp + edx*4 + 0x34], eax
mov edx, dword [esp + 8]
imul eax, ecx, 0xc
mov ecx, dword [esp + 0xc]
add eax, dword [edx + 0x4a54]
mov dword [eax], ecx
mov ecx, dword [esp + 0x10]
movss xmm0, dword [ecx + 0x18]
movss dword [eax + 8], xmm0
movss dword [eax + 4], xmm0
movss xmm0, dword [ecx + 0x18]
maxss xmm0, dword [0x10088500]
mov eax, dword [esp + 0xc]
inc eax
mov dword [esp + 0xc], eax
movss dword [ecx + 0x14], xmm0
mov ecx, dword [esp + 0x28]
add ecx, 0x2c
mov dword [esp + 0x28], ecx
cmp eax, dword [edi]
jl 0x1006129c
mov dword [esp + 0x10], esi
and dword [edi + 0x44], 0
lea eax, [esp + 0x80]
push 3
xorps xmm4, xmm4
xorps xmm1, xmm1
pop ecx
movss xmm0, dword [eax - 4]
addss xmm0, dword [eax]
add eax, 0xc
addss xmm1, xmm0
sub ecx, 1
jne 0x100613e3
movss dword [edi + 0x44], xmm1
movss xmm0, dword [edi + 0x30]
subss xmm0, dword [edi + 0x28]
comiss xmm1, xmm0
jbe 0x1006143c
xor eax, eax
inc eax
cmp dword [edi], eax
jle 0x1006143c
mov eax, dword [edi + 0xc]
and al, 0x90
cmp al, 0x80
jne 0x1006143c
mov ecx, edi
call fcn.10061bbc
xorps xmm4, xmm4
test eax, eax
je 0x1006143c
test dword [eax + 4], 0x200000
mov esi, dword [eax]
mov dword [esp + 0x10], esi
jne 0x1006143c
mov dword [edi + 0x14], esi
movss xmm3, dword [esp + 0x94]
movss xmm1, dword [esp + 0x7c]
addss xmm3, dword [esp + 0x98]
addss xmm1, dword [esp + 0x80]
movss xmm0, dword [edi + 0x30]
subss xmm0, dword [edi + 0x28]
movaps xmm2, xmm3
addss xmm2, xmm1
comiss xmm0, xmm2
seta al
mov byte [esp + 0x1f], al
test al, al
je 0x100614a0
movss xmm2, dword [esp + 0x88]
subss xmm0, xmm1
addss xmm2, dword [esp + 0x8c]
subss xmm0, xmm3
subss xmm2, xmm0
maxss xmm2, xmm4
jmp 0x100614a4
subss xmm2, xmm0
comiss xmm2, dword [0x10088500]
jb 0x100615b1
test byte [edi + 0xc], 0x40
jne 0x100614bf
test al, al
jne 0x100615b1
test al, al
je 0x100614cc
mov edx, dword [esp + 0x84]
jmp 0x100614dd
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x90]
add edx, eax
mov al, byte [esp + 0x1f]
mov dword [esp + 0xc], edx
test al, al
je 0x100614f2
mov eax, dword [esp + 0x90]
add eax, dword [esp + 0x78]
jmp 0x100614f4
xor eax, eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x28], eax
imul eax, eax, 0xc
mov ecx, dword [ecx + 0x4a54]
add ecx, eax
mov dword [esp + 0x24], eax
call fcn.1005141f
mov eax, dword [esp + 0xc]
xorps xmm7, xmm7
add eax, dword [esp + 0x28]
mov edx, dword [esp + 8]
cmp dword [esp + 0x28], eax
jge 0x100615b8
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x24]
mov eax, dword [edx + 0x4a54]
imul edx, dword [ecx + eax], 0x2c
cvttss2si eax, dword [ecx + eax + 4]
add edx, dword [edi + 8]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 8]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
comiss xmm7, xmm0
ja 0x100615a7
mov eax, dword [esp + 0xc]
movss xmm2, dword [0x10088500]
maxss xmm2, xmm0
mov eax, dword [eax + 4]
test al, 0x40
je 0x10061573
xor eax, eax
jmp 0x1006157c
test al, 0x80
push 0
pop eax
setne al
inc eax
mov edx, dword [esp + 0xc]
imul eax, eax, 0xc
movss xmm1, dword [edx + 0x14]
subss xmm1, xmm2
movss xmm0, dword [esp + eax + 0x7c]
subss xmm0, xmm1
movss dword [esp + eax + 0x7c], xmm0
mov eax, edx
mov edx, dword [esp + 8]
movss dword [eax + 0x14], xmm2
add ecx, 0xc
sub esi, 1
jne 0x10061531
jmp 0x100615b8
mov edx, dword [esp + 8]
xorps xmm7, xmm7
xor esi, esi
movaps xmm2, xmm7
and dword [edi + 0x40], esi
xor ecx, ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x18], ecx
imul eax, ecx, 0xc
mov dword [esp + 0x28], eax
cmp ecx, 2
jne 0x100615f4
movss xmm1, dword [edi + 0x30]
movaps xmm0, xmm7
subss xmm1, dword [edi + 0x28]
subss xmm1, dword [esp + eax + 0x7c]
maxss xmm0, xmm1
minss xmm0, xmm2
movaps xmm2, xmm0
and dword [esp + 0xc], 0
mov ecx, dword [esp + eax + 0x78]
test ecx, ecx
jle 0x10061657
imul ecx, esi, 0x2c
mov esi, dword [edi + 8]
mov edi, dword [esp + 0x28]
add esi, 0x14
add esi, ecx
movss dword [esi - 4], xmm2
mov ecx, dword [esp + edi + 0x78]
lea eax, [ecx - 1]
cmp dword [esp + 0xc], eax
jge 0x1006162c
movss xmm1, dword [edx + 0x37ec]
jmp 0x1006162f
movaps xmm1, xmm7
movss xmm0, dword [esi]
add esi, 0x2c
mov eax, dword [esp + 0xc]
addss xmm0, xmm1
inc eax
mov dword [esp + 0xc], eax
addss xmm2, xmm0
cmp eax, ecx
jl 0x10061610
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
movss xmm0, dword [esp + eax + 0x80]
add esi, ecx
movss xmm4, dword [esp + eax + 0x7c]
addss xmm2, xmm0
mov ecx, dword [esp + 0x18]
addss xmm4, xmm0
inc ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x18], ecx
maxss xmm4, xmm7
addss xmm4, dword [edi + 0x40]
movss dword [edi + 0x40], xmm4
cmp ecx, 3
jl 0x100615ca
cmp byte [esp + 0x20], 0
jne 0x100616a3
and dword [edi + 0x14], 0
xor eax, eax
jmp 0x100616a6
mov eax, dword [edi + 0x14]
mov esi, dword [esp + 0x10]
test eax, eax
jne 0x100616c4
xor eax, eax
cmp dword [edi + 0x18], eax
jne 0x100616c4
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x100616c4
mov esi, dword [ecx]
mov eax, esi
mov dword [edi + 0x14], esi
mov dword [edi + 0x1c], eax
mov byte [edi + 0x68], 0
test esi, esi
je 0x100616e3
lea eax, [esp + 0x78]
mov edx, esi
push eax
mov ecx, edi
call fcn.100618ea
movss xmm4, dword [edi + 0x40]
pop ecx
movss xmm0, dword [edi + 0x30]
movaps xmm1, xmm4
subss xmm0, dword [edi + 0x28]
movss xmm2, dword [edi + 0x48]
movss xmm3, dword [edi + 0x4c]
mov esi, dword [esp + 8]
subss xmm1, xmm0
minss xmm2, xmm1
maxss xmm2, xmm7
movss dword [edi + 0x48], xmm2
movss xmm0, dword [edi + 0x30]
subss xmm0, dword [edi + 0x28]
subss xmm4, xmm0
minss xmm3, xmm4
maxss xmm3, xmm7
ucomiss xmm2, xmm3
movss dword [edi + 0x4c], xmm3
lahf
test ah, 0x44
jnp 0x100617cd
movss xmm0, dword [esi + 0x3bb4]
mulss xmm0, dword [0x10088654]
mov eax, dword [edi + 0x24]
movss xmm4, dword [edi + 0x54]
inc eax
maxss xmm4, xmm0
movaps xmm0, xmm3
subss xmm0, xmm2
cvtps2pd xmm0, xmm0
andps xmm0, xmmword [0x10088ff0]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x10088494]
maxss xmm4, xmm0
movss dword [edi + 0x54], xmm4
cmp eax, dword [esi + 0x3dc8]
jl 0x100617c3
movss xmm1, dword [esi + 0x3bb4]
mulss xmm1, dword [0x100885f8]
movss xmm0, dword [edi + 0x50]
comiss xmm0, xmm1
ja 0x100617c3
comiss xmm3, xmm2
movss xmm0, dword [esi + 0x18]
mulss xmm0, xmm4
jbe 0x100617b4
addss xmm2, xmm0
minss xmm2, xmm3
jmp 0x100617c6
comiss xmm2, xmm3
jbe 0x100617c6
subss xmm2, xmm0
maxss xmm2, xmm3
jmp 0x100617c6
movaps xmm2, xmm3
movss dword [edi + 0x48], xmm2
jmp 0x100617d1
and dword [edi + 0x54], 0
test dword [edi + 0xc], 0x100000
movss xmm0, dword [esp + 0x7c]
addss xmm0, dword [edi + 0x28]
addss xmm0, dword [esp + 0x80]
movss dword [edi + 0x58], xmm0
movss xmm0, dword [edi + 0x30]
subss xmm0, dword [esp + 0x94]
subss xmm0, dword [esp + 0x8c]
movss dword [edi + 0x5c], xmm0
jne 0x1006181c
push 0
lea ecx, [edi + 0x84]
call fcn.1001c1fe
mov esi, dword [esi + 0x3e28]
lea ecx, [esp + 0x28]
mov eax, dword [edi + 0x28]
mov dword [esi + 0xec], eax
mov eax, dword [edi + 0x2c]
mov dword [esi + 0xf0], eax
movss xmm0, dword [edi + 0x40]
movss xmm1, dword [edi + 0x78]
movss dword [esp + 0x28], xmm0
movss xmm0, dword [edi + 0x34]
subss xmm0, dword [edi + 0x2c]
movss dword [esp + 0x2c], xmm0
call fcn.1000fcb8
movss xmm1, dword [edi + 0x44]
addss xmm1, dword [edi + 0x28]
movss xmm0, dword [esi + 0x10c]
mov ecx, dword [esp + 0x9c]
pop edi
maxss xmm0, xmm1
movss dword [esi + 0x10c], xmm0
pop esi
xor ecx, esp
call fcn.1006dac1
mov esp, ebp
pop ebp
ret