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

Disassembly:
push edi
push esi
push ebx
sub esp, 0x98
movsd xmm2, qword [esp + 0xa8]
mov eax, dword [ecx + 4]
sub eax, dword [ecx + 0x10c]
dec eax
mov dword [esp + 0x70], 0
mov edx, 4
cmp eax, 4
cmovge eax, edx
mov edx, dword [ecx + 0x130]
mov dword [esp + 0x6c], eax
mov eax, edx
mov dword [esp + 0x84], 0x28
mov esi, 0xffffffff
mov dword [esp + 0x30], esi
mov dword [esp + 0x74], 0xfffffffe
mov ebx, esi
mov dword [esp + 0x80], ebx
pxor xmm3, xmm3
movaps xmm1, xmm3
mov edi, 2
mov dword [esp + 0x7c], edi
mov edx, dword [esp + 0x84]
mov edi, dword [eax + edx]
lea esi, [edx + eax]
cmp edi, esi
je 0x10016064
mov ebx, dword [edi + 8]
mov esi, dword [ecx + 0xa4]
mov esi, dword [esi + ebx*4]
mov edi, dword [ecx + 0xa8]
mov eax, dword [edi + ebx*4]
mov edx, dword [ecx + 0x104]
movsd xmm0, qword [edx + ebx*8]
mov dword [esp + 0x78], edx
lea edi, [eax + esi - 1]
comisd xmm3, xmm0
jbe 0x10015e92
mov eax, dword [ecx + 0x9c]
lea edx, [eax + edi*8]
movsd xmm0, qword [edx]
andps xmm0, xmmword [0x101e0bb0]
mov dword [esp + 0x5c], edx
lea eax, [edi - 1]
cmp esi, eax
jg 0x10015e89
mov eax, edi
sub eax, esi
mov dword [esp + 0x58], eax
cmp eax, 8
jl 0x10016057
mov dword [esp + 0x4c], esi
mov esi, edx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x50], 0
mov edx, eax
and edx, 7
mov ecx, dword [esp + 0x50]
neg edx
add edx, eax
mov dword [esp + 0x60], edx
unpcklpd xmm0, xmm0
mov eax, ecx
neg eax
movsd xmm4, qword [esi + eax*8 - 8]
movhpd xmm4, qword [esi + eax*8 - 0x10]
movsd xmm5, qword [esi + eax*8 - 0x28]
movhpd xmm5, qword [esi + eax*8 - 0x30]
add ecx, 8
cmp ecx, edx
andps xmm4, xmmword [0x101e0ba0]
maxpd xmm4, xmm0
movsd xmm0, qword [esi + eax*8 - 0x18]
movhpd xmm0, qword [esi + eax*8 - 0x20]
andps xmm5, xmmword [0x101e0ba0]
andps xmm0, xmmword [0x101e0ba0]
maxpd xmm0, xmm4
maxpd xmm5, xmm0
movsd xmm0, qword [esi + eax*8 - 0x38]
movhpd xmm0, qword [esi + eax*8 - 0x40]
andps xmm0, xmmword [0x101e0ba0]
maxpd xmm0, xmm5
jb 0x10015dc2
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x64]
movaps xmm4, xmm0
mov dword [esp + 0x60], edx
unpckhpd xmm4, xmm0
maxsd xmm0, xmm4
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x60]
jbe 0x10015e89
mov edx, dword [esp + 0x60]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x64], ecx
mov ecx, eax
movaps xmm5, xmm0
lea eax, [edx*8]
neg eax
movsd xmm4, qword [esi + eax - 8]
inc edx
cmp edx, ecx
andps xmm4, xmmword [0x101e0bb0]
movaps xmm0, xmm4
maxsd xmm0, xmm5
jb 0x10015e5c
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x78]
movsd qword [eax + ebx*8], xmm0
mulsd xmm0, xmm2
mov eax, dword [ecx + 4]
inc eax
mov dword [esp + 0x88], eax
mov edx, 0xffffffff
cmp edi, esi
jl 0x10015f39
mov eax, dword [ecx + 0x108]
mov dword [esp + 0x90], eax
mov eax, dword [ecx + 0x9c]
mov dword [esp + 0x94], eax
mov eax, dword [ecx + 0xa0]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x68], ebx
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x90]
mov ebx, dword [esp + 0x94]
mov eax, dword [eax + edi*4]
mov ecx, dword [ecx + eax*4]
movsd xmm1, qword [ebx + edi*8]
cmp ecx, dword [esp + 0x88]
jge 0x10015f2c
movaps xmm4, xmm1
andps xmm4, xmmword [0x101e0bb0]
comisd xmm4, xmm0
jbe 0x10015f2c
cmp ecx, dword [esp + 0x7c]
mov edx, edi
mov dword [esp + 0x88], ecx
mov dword [esp + 0x80], eax
jle 0x10015f31
dec edi
cmp edi, esi
jge 0x10015edd
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov eax, dword [esp + 0x80]
mov esi, dword [ecx + 0x124]
lea eax, [eax + eax*4]
mov edi, dword [esi + eax*4]
mov esi, dword [esi + eax*4 + 4]
mov dword [edi + 4], esi
mov edi, dword [ecx + 0x124]
mov esi, dword [edi + eax*4 + 4]
mov edi, dword [edi + eax*4]
mov dword [esi], edi
mov esi, dword [ecx + 0x124]
lea esi, [esi + eax*4]
mov dword [esi], esi
mov edi, dword [ecx + 0x124]
mov dword [edi + eax*4 + 4], esi
test edx, edx
jge 0x10015f86
mov eax, dword [ecx + 0x130]
jmp 0x10015d20
mov esi, dword [ecx + 0xa4]
sub edx, dword [esi + ebx*4]
mov edi, dword [ecx + 0x12c]
lea eax, [ebx + ebx*4]
mov dword [edi + eax*4 + 0xc], edx
mov edx, dword [esp + 0x7c]
mov edi, dword [ecx + 0x12c]
lea esi, [edx - 1]
imul esi, dword [esp + 0x88]
mov edx, dword [esp + 0x74]
lea edx, [esi + edx + 1]
mov dword [edi + eax*4 + 0x10], edx
mov edi, dword [ecx + 0x110]
mov esi, dword [edi + 8]
test esi, esi
jl 0x10015fdc
cmp esi, ebx
je 0x10015fdc
cmp edx, dword [edi + 0x10]
jle 0x10015fdc
mov edi, dword [edi]
mov esi, dword [edi + 8]
test esi, esi
jge 0x10015fca
mov edi, dword [edi + 4]
cmp ebx, dword [edi + 8]
je 0x10016031
mov edx, dword [ecx + 0x12c]
mov esi, dword [edx + eax*4]
mov edx, dword [edx + eax*4 + 4]
mov dword [esi + 4], edx
mov esi, dword [ecx + 0x12c]
mov edx, dword [esi + eax*4 + 4]
mov esi, dword [esi + eax*4]
mov dword [edx], esi
mov esi, dword [ecx + 0x12c]
mov edx, dword [edi]
mov dword [esi + eax*4], edx
mov edx, dword [ecx + 0x12c]
lea edx, [edx + eax*4]
mov esi, dword [edx]
mov dword [esi + 4], edx
mov edx, dword [ecx + 0x12c]
mov dword [edx + eax*4 + 4], edi
mov esi, dword [ecx + 0x12c]
lea eax, [esi + eax*4]
mov dword [edi], eax
mov eax, dword [esp + 0x70]
inc eax
cmp eax, dword [esp + 0x6c]
mov dword [esp + 0x70], eax
jge 0x1001604b
mov eax, dword [ecx + 0x130]
jmp 0x10015d20
add esp, 0x98
pop ebx
pop esi
pop edi
ret 8
mov dword [esp + 0x60], 0
jmp 0x10015e40
mov esi, dword [ecx + 0x128]
mov edi, dword [esi + edx]
add esi, edx
cmp edi, esi
je 0x10016451
mov eax, dword [edi + 8]
mov esi, dword [ecx + 0xd4]
mov edx, dword [ecx + 0xd0]
mov edi, dword [esi + eax*4]
mov esi, dword [edx + eax*4]
mov edx, dword [ecx + 0x108]
mov dword [esp + 0x80], eax
mov eax, dword [edx + eax*4]
lea esi, [edi + esi - 1]
mov edi, dword [ecx + 4]
neg eax
add eax, esi
inc eax
inc edi
mov dword [esp + 0x88], edi
mov edx, 0xffffffff
cmp esi, eax
jl 0x10015f39
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x54], eax
mov dword [esp + 0x68], ebx
lea edi, [edi + 1]
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edx
mov edx, dword [ecx + 0xc8]
mov edx, dword [edx + esi*4]
mov eax, dword [ecx + 0xa8]
mov eax, dword [eax + edx*4]
cmp eax, dword [esp + 0x88]
jge 0x100163a0
mov edi, dword [ecx + 0xa4]
mov ebx, dword [edi + edx*4]
mov edi, dword [ecx + 0x104]
movsd xmm0, qword [edi + edx*8]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], edi
lea edi, [eax + ebx - 1]
mov dword [esp + 0x40], edi
sub edi, ebx
inc edi
mov dword [esp + 0x3c], edi
comisd xmm0, xmm3
jbe 0x10016184
cmp ebx, dword [esp + 0x40]
jg 0x10016373
mov edi, dword [esp + 0x40]
mov ebx, dword [ecx + 0xa0]
mov dword [esp + 0x10], 0
lea ebx, [ebx + edi*4]
mov edi, dword [esp + 0x80]
mov dword [esp], edx
mov dword [esp + 4], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x64], ecx
mov ecx, dword [esp + 0x10]
lea edx, [ecx*4]
neg edx
cmp edi, dword [ebx + edx]
je 0x1001640e
inc ecx
cmp ecx, esi
jb 0x1001615d
mov edx, dword [esp]
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0x64]
jmp 0x10016373
mov edi, dword [ecx + 0x9c]
movsd xmm0, qword [edi + ebx*8]
andps xmm0, xmmword [0x101e0bb0]
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x40]
cmp edi, ebx
mov dword [esp + 0x20], edi
jl 0x10016240
mov edi, dword [esp + 0x1c]
mov ebx, dword [ecx + 0xa0]
mov dword [esp], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x18], eax
mov dword [esp + 4], esi
mov dword [esp + 0x64], ecx
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
lea edi, [edi + edx*8]
lea edx, [ebx + edx*4]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0xc]
movaps xmm5, xmm0
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x80]
mov ecx, edx
neg ecx
movsd xmm4, qword [esi + ecx*8]
andps xmm4, xmmword [0x101e0bb0]
movaps xmm0, xmm4
mov esi, dword [esp + 0x44]
cmp edi, dword [esi + ecx*4]
maxsd xmm0, xmm5
je 0x100163ce
mov eax, dword [esp + 0x40]
lea eax, [ebx + eax - 1]
dec ebx
inc edx
cmp edx, dword [esp + 0x3c]
jb 0x100161eb
mov edx, dword [esp]
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
lea edi, [ebx - 1]
cmp edi, dword [esp + 0x38]
jle 0x1001636a
sub edi, dword [esp + 0x38]
cmp edi, 8
jl 0x100163b8
mov dword [esp + 8], 0
mov dword [esp], edx
mov ebx, edi
and ebx, 7
mov dword [esp + 4], esi
mov esi, dword [esp + 8]
mov dword [esp + 0x64], ecx
neg ebx
add ebx, edi
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
lea ebx, [ebx*8 - 8]
unpcklpd xmm0, xmm0
add ebx, dword [esp + 0x1c]
mov edx, esi
neg edx
movsd xmm4, qword [ebx + edx*8]
movhpd xmm4, qword [ebx + edx*8 - 8]
movsd xmm5, qword [ebx + edx*8 - 0x20]
movhpd xmm5, qword [ebx + edx*8 - 0x28]
add esi, 8
cmp esi, ecx
andps xmm4, xmmword [0x101e0ba0]
maxpd xmm4, xmm0
movsd xmm0, qword [ebx + edx*8 - 0x10]
movhpd xmm0, qword [ebx + edx*8 - 0x18]
andps xmm5, xmmword [0x101e0ba0]
andps xmm0, xmmword [0x101e0ba0]
maxpd xmm0, xmm4
maxpd xmm5, xmm0
movsd xmm0, qword [ebx + edx*8 - 0x30]
movhpd xmm0, qword [ebx + edx*8 - 0x38]
andps xmm0, xmmword [0x101e0ba0]
maxpd xmm0, xmm5
jb 0x10016299
mov edx, dword [esp]
mov esi, dword [esp + 4]
movaps xmm4, xmm0
mov dword [esp + 0x2c], ecx
unpckhpd xmm4, xmm0
maxsd xmm0, xmm4
mov ecx, dword [esp + 0x64]
cmp edi, dword [esp + 0x2c]
jbe 0x1001636a
mov ebx, dword [esp + 0x20]
mov dword [esp + 4], esi
mov esi, dword [esp + 0x2c]
lea ebx, [ebx*8 - 8]
add dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x64], ecx
movaps xmm5, xmm0
lea ecx, [esi*8]
neg ecx
movsd xmm4, qword [ebx + ecx]
inc esi
cmp esi, edi
andps xmm4, xmmword [0x101e0bb0]
movaps xmm0, xmm4
maxsd xmm0, xmm5
jb 0x1001633e
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x34]
movsd qword [ebx + edx*8], xmm0
mulsd xmm0, xmm2
movaps xmm4, xmm1
andps xmm4, xmmword [0x101e0bb0]
comisd xmm4, xmm0
jbe 0x100163a0
cmp eax, dword [esp + 0x24]
mov dword [esp + 0x88], eax
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x28], edx
jle 0x100163c5
dec esi
cmp esi, dword [esp + 0x54]
jge 0x100160d4
mov ebx, dword [esp + 0x68]
mov edx, dword [esp + 0x28]
jmp 0x10015f39
mov dword [esp + 0x2c], 0
jmp 0x10016319
mov ebx, dword [esp + 0x68]
jmp 0x10015f39
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x48]
mov dword [esp + 0xc], edx
mov edx, dword [esp]
mov edi, dword [esp + 0xc]
shl edi, 3
neg edi
movsd xmm1, qword [ebx + edi]
mov ebx, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], eax
add ebx, edi
mov eax, dword [esp + 0x18]
mov dword [esp + 0x30], ebx
jmp 0x10016240
mov esi, dword [esp + 4]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x64]
mov edx, dword [ecx + 0x9c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
lea edi, [edx + eax*8]
mov edx, dword [esp + 0x10]
lea ebx, [edx*8]
neg ebx
movsd xmm1, qword [ebx + edi]
neg edx
add eax, edx
mov edx, dword [esp]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
jmp 0x10016373
mov edx, dword [esp + 0x7c]
dec dword [esp + 0x74]
inc edx
lea esi, [edx + edx*4]
mov dword [esp + 0x7c], edx
shl esi, 2
mov dword [esp + 0x84], esi
jmp 0x10015d20