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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
push ebx
mov ebx, dword [ebp + 0x10]
push esi
push edi
test ebx, ebx
jle 0x10020219
mov esi, dword [ebp + 0x14]
test esi, esi
jle 0x10020219
mov edx, dword [ebp + 0x18]
test edx, edx
jle 0x10020219
mov eax, dword [ebp + 0x1c]
xorps xmm1, xmm1
comisd xmm1, xmmword [eax]
ja 0x10020219
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov eax, ebx
imul eax, esi
sar ecx, 3
imul eax, edx
cmp ecx, eax
jne 0x1002020d
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov eax, esi
imul eax, edx
cmp ecx, eax
jne 0x1002020d
push 0x1009eb4c
mov ecx, 0x1009eb4c
call fcn.10027900
test al, al
je 0x1001fa27
push 0x1009eb40
mov ecx, 0x1009eb4c
call fcn.10027900
test al, al
jne 0x1002020d
mov eax, dword [ebp + 0x28]
mov ecx, 0x1009eb4c
push 0x1009eb40
mov byte [esp + 0x20], 0
mov byte [eax], 0
mov eax, dword [ebp + 0x2c]
mov byte [eax], 0
mov eax, dword [ebp + 0x30]
mov byte [eax], 0
call fcn.100278e0
mov dl, byte [ebp + 0x20]
xor ch, ch
movsd xmm6, qword [0x1008f670]
mov cl, 1
mov byte [esp + 0x12], cl
mov byte [esp + 0x11], ch
movsd qword [esp + 0x50], xmm6
test dl, dl
je 0x1001fac5
mov esi, dword [ebp + 0x24]
test al, al
je 0x1001fa99
movsd xmm1, qword [esi]
movsd xmm0, qword [0x1008f660]
comisd xmm0, xmm1
ja 0x10020219
comisd xmm1, xmmword [0x1008f620]
ja 0x10020219
movsd xmm7, qword [esi]
movsd qword [esp + 0x48], xmm7
movsd qword [esp + 0x78], xmm7
test al, al
je 0x1001faf2
movsd xmm0, qword [0x1008f648]
movsd xmm2, qword [0x1008f5f8]
movsd qword [esp + 0x58], xmm0
jmp 0x1001fb28
test al, al
je 0x1001faef
movsd xmm7, qword [0x1008f660]
movsd xmm0, qword [0x1008f648]
movsd xmm2, qword [0x1008f5f8]
movsd qword [esp + 0x48], xmm7
movsd qword [esp + 0x58], xmm0
jmp 0x1001fb28
movaps xmm7, xmm6
movsd xmm0, qword [0x1008f658]
movsd qword [esp + 0x48], xmm7
movsd qword [esp + 0x58], xmm0
test al, al
je 0x1001fb14
movsd xmm2, qword [0x1008f5f8]
jmp 0x1001fb28
movsd xmm2, qword [0x1008f618]
movsd qword [esp + 0x50], xmm6
movsd qword [esp + 0x48], xmm7
movsd xmm5, qword [0x1008f630]
xor edi, edi
mov dword [esp + 0x18], edi
xor esi, esi
mov edi, ebx
mov dword [esp + 0x14], esi
imul edi, dword [ebp + 0x14]
xor eax, eax
movsd qword [esp + 0x40], xmm5
movsd qword [esp + 0x60], xmm2
mov dword [esp + 0x2c], eax
shl edi, 3
mov dword [esp + 0x3c], edi
mov edi, dword [ebp + 0x18]
mov dword [esp + 0x38], edi
jmp 0x1001fb73
mov cl, byte [esp + 0x12]
mov dl, byte [ebp + 0x20]
mov ch, byte [esp + 0x11]
mov eax, dword [esp + 0x2c]
mov edi, dword [ebp + 8]
movsd xmm1, qword [0x1008f5b8]
mov edi, dword [edi]
add edi, eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x20], edi
mov dword [esp + 0x30], eax
nop dword [eax]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
cmp byte [esi + eax], 0
je 0x1001fdce
inc dword [esp + 0x18]
xor esi, esi
cmp ebx, 1
jg 0x1001fbe6
nop word [eax + eax]
movsd xmm0, qword [edi]
ucomisd xmm0, xmm0
movsd qword [esp + 0x68], xmm0
setp al
cmp al, 1
jne 0x1001fcec
mov ch, al
inc esi
mov byte [esp + 0x11], ch
jmp 0x1001fcff
movsd xmm5, qword [esp + 0x40]
movsd xmm0, qword [edi]
ucomisd xmm0, xmm0
movsd qword [esp + 0x68], xmm0
setp al
cmp al, 1
jne 0x1001fc6a
mov ch, al
inc esi
mov byte [esp + 0x11], ch
test dl, dl
je 0x1001fc0e
movsd qword [edi], xmm7
mov ch, byte [esp + 0x11]
movsd xmm6, qword [esp + 0x50]
add edi, 8
movsd xmm7, qword [esp + 0x48]
movsd xmm1, qword [0x1008f5b8]
sub ebx, 1
jne 0x1001fbe0
movsd xmm0, qword [esp + 0x40]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [esp + 0x60]
movsd qword [esp + 0x60], xmm0
movaps xmm0, xmm7
movsd qword [esp + 0x48], xmm0
movsd xmm0, qword [esp + 0x58]
mov byte [esp + 0x12], cl
mov byte [esp + 0x11], ch
movsd qword [esp + 0x50], xmm6
movsd qword [esp + 0x58], xmm0
jmp 0x1001fd28
test dl, dl
je 0x1001fc7b
ucomisd xmm0, xmm7
lahf
test ah, 0x44
jp 0x1001fc7b
inc esi
jmp 0x1001fc0a
comisd xmm5, xmm0
jbe 0x1001fc89
movsd qword [esp + 0x40], xmm0
jmp 0x1001fc99
maxsd xmm0, xmm6
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [esp + 0x68]
test cl, cl
je 0x1001fc0a
addsd xmm0, xmm1
sub esp, 8
movsd qword [esp + 0x70], xmm0
fld qword [esp + 0x70]
fstp qword [esp]
call fcn.10074d20
movsd xmm0, qword [edi]
add esp, 8
mov dl, byte [ebp + 0x20]
mov ch, byte [esp + 0x11]
fstp qword [esp + 0x68]
ucomisd xmm0, qword [esp + 0x68]
lahf
test ah, 0x44
jnp 0x1001fce3
xor cl, cl
mov byte [esp + 0x12], cl
jmp 0x1001fc0e
mov cl, byte [esp + 0x12]
jmp 0x1001fc0e
test dl, dl
je 0x1001fd4b
ucomisd xmm0, xmm7
lahf
test ah, 0x44
jp 0x1001fd4b
inc esi
mov ch, byte [esp + 0x11]
movsd xmm5, qword [esp + 0x40]
add edi, 8
movsd xmm6, qword [esp + 0x50]
movsd xmm7, qword [esp + 0x48]
movsd xmm1, qword [0x1008f5b8]
mov dl, byte [ebp + 0x20]
sub ebx, 1
jne 0x1001fbb0
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov edi, dword [esp + 0x20]
mov eax, dword [eax]
cmp esi, ebx
jne 0x1001fdb5
mov esi, dword [esp + 0x14]
mov byte [eax + esi], 0
mov eax, dword [ebp + 0x28]
mov byte [eax], 1
jmp 0x1001fdce
comisd xmm5, xmm0
jbe 0x1001fd59
movsd qword [esp + 0x40], xmm0
jmp 0x1001fd69
maxsd xmm0, xmm6
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [esp + 0x68]
test cl, cl
je 0x1001fcfb
addsd xmm0, xmm1
sub esp, 8
movsd qword [esp + 0x70], xmm0
fld qword [esp + 0x70]
fstp qword [esp]
call fcn.10074d20
movsd xmm0, qword [edi]
add esp, 8
mov ch, byte [esp + 0x11]
fstp qword [esp + 0x68]
ucomisd xmm0, qword [esp + 0x68]
lahf
test ah, 0x44
jnp 0x1001fdac
xor cl, cl
mov byte [esp + 0x12], cl
jmp 0x1001fcff
mov cl, byte [esp + 0x12]
jmp 0x1001fcff
mov eax, dword [esp + 0x1c]
test esi, esi
mov esi, dword [esp + 0x14]
mov edx, 1
movzx eax, al
cmovg eax, edx
mov dword [esp + 0x1c], eax
movsd xmm5, qword [esp + 0x40]
lea eax, [ebx*8]
movsd xmm7, qword [esp + 0x48]
inc esi
movsd xmm1, qword [0x1008f5b8]
add edi, eax
sub dword [esp + 0x30], 1
mov dl, byte [ebp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], edi
jne 0x1001fb90
movsd xmm2, qword [esp + 0x58]
mov al, cl
mov ebx, dword [esp + 0x1c]
movaps xmm0, xmm7
mov esi, dword [esp + 0x3c]
mov cl, bl
add dword [esp + 0x2c], esi
movaps xmm4, xmm6
sub dword [esp + 0x38], 1
movaps xmm1, xmm5
mov edi, dword [esp + 0x18]
mov edx, edi
mov esi, dword [esp + 0x14]
movsd qword [esp + 0x20], xmm2
movsd xmm2, qword [esp + 0x60]
mov dword [esp + 0x1c], ebx
movaps xmm3, xmm2
mov bl, byte [esp + 0x12]
mov byte [esp + 0x12], bl
mov bl, byte [esp + 0x11]
movsd qword [esp + 0x60], xmm2
movsd xmm2, qword [esp + 0x58]
mov byte [esp + 0x11], bl
mov ebx, dword [ebp + 0x10]
movsd qword [esp + 0x58], xmm2
movsd xmm2, qword [esp + 0x20]
movsd qword [esp + 0x30], xmm0
movsd qword [esp + 0x70], xmm3
movsd qword [esp + 0x78], xmm4
movsd qword [esp + 0x68], xmm1
mov byte [esp + 0x13], cl
movsd qword [esp + 0x40], xmm5
movsd qword [esp + 0x50], xmm6
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], esi
movsd qword [esp + 0x48], xmm7
jne 0x1001fb64
mov esi, dword [ebp + 0x2c]
xor ebx, ebx
test edx, edx
movzx eax, al
cmovne ebx, eax
mov byte [esi], cl
mov esi, dword [ebp + 0x10]
test ch, ch
je 0x1001fedb
cmp esi, 1
jle 0x1001fedb
test cl, cl
je 0x1001fedb
cmp byte [ebp + 0x20], 0
jne 0x1001fedb
mov eax, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x1c]
mov byte [esp + 0x2c], bl
movsd xmm5, qword [edi]
movsd qword [esp + 0x50], xmm5
test bl, bl
je 0x1001ff88
comisd xmm1, xmm2
jb 0x1001ff10
comisd xmm3, xmm1
jb 0x1001ff10
comisd xmm4, xmm2
jb 0x1001ff10
comisd xmm3, xmm4
jb 0x1001ff10
mov al, 1
jmp 0x1001ff12
xor al, al
and bl, al
mov byte [esp + 0x2c], bl
test cl, cl
je 0x1001ff5c
sub esp, 8
movsd qword [esp], xmm0
call fcn.10022ca0
add esp, 8
test al, al
je 0x1001ff4e
movsd xmm0, qword [esp + 0x30]
comisd xmm0, xmmword [esp + 0x20]
jb 0x1001ff4e
movsd xmm1, qword [esp + 0x70]
comisd xmm1, xmm0
jb 0x1001ff4e
mov al, 1
jmp 0x1001ff50
xor al, al
movsd xmm5, qword [esp + 0x50]
and bl, al
mov byte [esp + 0x2c], bl
test bl, bl
je 0x1001ff88
fld qword [edi]
sub esp, 8
fstp qword [esp]
call fcn.10074d20
fstp qword [esp + 0x78]
movsd xmm5, qword [esp + 0x78]
add esp, 8
maxsd xmm5, qword [0x1008f5b8]
movsd qword [esp + 0x50], xmm5
mov eax, dword [ebp + 0x30]
xorps xmm4, xmm4
ucomisd xmm5, xmm4
mov byte [eax], bl
lahf
test ah, 0x44
jnp 0x10020014
cmp byte [ebp + 0x20], 0
je 0x1002001d
test bl, bl
je 0x1001ffc8
fld qword [esp + 0x50]
sub esp, 8
fstp qword [esp]
call fcn.10074d20
movsd xmm5, qword [esp + 0x58]
add esp, 8
fstp qword [esp + 0x70]
movsd xmm2, qword [esp + 0x70]
jmp 0x1001ffcf
movaps xmm2, xmm5
addsd xmm2, xmm5
movsd xmm3, qword [esp + 0x68]
movsd xmm1, qword [esp + 0x30]
movaps xmm0, xmm3
subsd xmm0, xmm2
comisd xmm1, xmm0
jb 0x10020029
addsd xmm2, qword [esp + 0x78]
comisd xmm2, xmm1
jb 0x10020029
test bl, bl
je 0x1002000d
movsd xmm0, qword [0x1008f5b8]
xor eax, eax
movsd qword [edi], xmm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xorps xmm0, xmm0
movsd qword [edi], xmm0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movsd xmm1, qword [esp + 0x30]
movsd xmm3, qword [esp + 0x68]
cmp byte [esp + 0x13], 0
je 0x100201cb
movsd xmm0, qword [esp + 0x20]
lea eax, [esp + 0x60]
push eax
sub esp, 8
movsd qword [esp + 0x6c], xmm1
movsd qword [esp], xmm0
push dword [esp + 0x38]
sub esp, 0x10
movsd qword [esp + 8], xmm5
movsd qword [esp], xmm3
call fcn.10022550
add esp, 0x20
test al, al
je 0x100201ec
movsd xmm2, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x30]
ucomisd xmm2, xmm1
lahf
test ah, 0x44
jnp 0x100201cb
mov eax, dword [ebp + 8]
xor edi, edi
mov edx, dword [eax]
mov eax, esi
imul eax, dword [ebp + 0x14]
mov dword [esp + 0x1c], edx
lea ecx, [edx + 0x10]
mov dword [esp + 0x30], ecx
shl eax, 3
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0xc]
xor ebx, ebx
mov esi, dword [eax]
mov eax, dword [ebp + 0x10]
shl eax, 3
mov dword [esp + 0x3c], eax
mov eax, ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x38], esi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], ecx
nop word [eax + eax]
cmp byte [esi + edi], 0
je 0x1002018a
xor esi, esi
cmp dword [ebp + 0x10], 4
jl 0x10020154
mov edx, dword [ebp + 0x10]
mov ecx, eax
lea edx, [edx - 4]
shr edx, 2
inc edx
lea esi, [edx*4]
movsd xmm0, qword [ecx - 0x10]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x10020109
movsd qword [ecx - 0x10], xmm2
movsd xmm0, qword [ecx - 8]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1002011d
movsd qword [ecx - 8], xmm2
movsd xmm0, qword [ecx]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1002012f
movsd qword [ecx], xmm2
movsd xmm0, qword [ecx + 8]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x10020143
movsd qword [ecx + 8], xmm2
add ecx, 0x20
sub edx, 1
jne 0x100200f5
mov edx, dword [esp + 0x1c]
cmp esi, dword [ebp + 0x10]
jge 0x1002017e
lea eax, [esi + ebx]
lea ecx, [edx + eax*8]
mov edx, dword [ebp + 0x10]
sub edx, esi
nop
movsd xmm0, qword [ecx]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x10020172
movsd qword [ecx], xmm2
add ecx, 8
sub edx, 1
jne 0x10020160
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x3c]
inc edi
add ebx, dword [ebp + 0x10]
sub ecx, 1
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], ecx
jne 0x100200d0
mov ecx, dword [esp + 0x30]
add edx, dword [esp + 0x18]
add ecx, dword [esp + 0x18]
sub dword [ebp + 0x18], 1
mov dword [esp + 0x1c], edx
mov dword [esp + 0x30], ecx
jne 0x100200a8
mov eax, dword [ebp + 0x24]
mov edi, dword [ebp + 0x1c]
movsd qword [eax], xmm2
movsd xmm1, qword [esp + 0x50]
movsd xmm0, qword [edi]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100201e3
movsd qword [edi], xmm1
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movsd xmm0, qword [esp + 0x30]
comisd xmm0, xmmword [esp + 0x68]
jb 0x100201cb
test bl, bl
je 0x10020208
movsd xmm1, qword [0x1008f5b8]
jmp 0x100201d1
xorps xmm1, xmm1
jmp 0x100201d1
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 2
pop ebx
mov esp, ebp
pop ebp
ret