Function at 0x1003f5b0
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 0x1003fe39
mov esi, dword [ebp + 0x14]
test esi, esi
jle 0x1003fe39
mov edx, dword [ebp + 0x18]
test edx, edx
jle 0x1003fe39
mov eax, dword [ebp + 0x1c]
xorps xmm1, xmm1
comisd xmm1, xmmword [eax]
ja 0x1003fe39
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 0x1003fe2d
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax + 4]
sub ecx, dword [eax]
mov eax, esi
imul eax, edx
cmp ecx, eax
jne 0x1003fe2d
push 0x100c5c50
mov ecx, 0x100c5c50
call fcn.100475c0
test al, al
je 0x1003f647
push 0x100c5c44
mov ecx, 0x100c5c50
call fcn.100475c0
test al, al
jne 0x1003fe2d
mov eax, dword [ebp + 0x28]
mov ecx, 0x100c5c50
push 0x100c5c44
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.100475a0
mov dl, byte [ebp + 0x20]
xor ch, ch
movsd xmm6, qword [0x100af6d0]
mov cl, 1
mov byte [esp + 0x12], cl
mov byte [esp + 0x11], ch
movsd qword [esp + 0x50], xmm6
test dl, dl
je 0x1003f6e5
mov esi, dword [ebp + 0x24]
test al, al
je 0x1003f6b9
movsd xmm1, qword [esi]
movsd xmm0, qword [0x100af6c0]
comisd xmm0, xmm1
ja 0x1003fe39
comisd xmm1, xmmword [0x100af680]
ja 0x1003fe39
movsd xmm7, qword [esi]
movsd qword [esp + 0x48], xmm7
movsd qword [esp + 0x78], xmm7
test al, al
je 0x1003f712
movsd xmm0, qword [0x100af6a8]
movsd xmm2, qword [0x100af658]
movsd qword [esp + 0x58], xmm0
jmp 0x1003f748
test al, al
je 0x1003f70f
movsd xmm7, qword [0x100af6c0]
movsd xmm0, qword [0x100af6a8]
movsd xmm2, qword [0x100af658]
movsd qword [esp + 0x48], xmm7
movsd qword [esp + 0x58], xmm0
jmp 0x1003f748
movaps xmm7, xmm6
movsd xmm0, qword [0x100af6b8]
movsd qword [esp + 0x48], xmm7
movsd qword [esp + 0x58], xmm0
test al, al
je 0x1003f734
movsd xmm2, qword [0x100af658]
jmp 0x1003f748
movsd xmm2, qword [0x100af678]
movsd qword [esp + 0x50], xmm6
movsd qword [esp + 0x48], xmm7
movsd xmm5, qword [0x100af690]
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 0x1003f793
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 [0x100af628]
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 0x1003f9ee
inc dword [esp + 0x18]
xor esi, esi
cmp ebx, 1
jg 0x1003f806
nop word [eax + eax]
movsd xmm0, qword [edi]
ucomisd xmm0, xmm0
movsd qword [esp + 0x68], xmm0
setp al
cmp al, 1
jne 0x1003f90c
mov ch, al
inc esi
mov byte [esp + 0x11], ch
jmp 0x1003f91f
movsd xmm5, qword [esp + 0x40]
movsd xmm0, qword [edi]
ucomisd xmm0, xmm0
movsd qword [esp + 0x68], xmm0
setp al
cmp al, 1
jne 0x1003f88a
mov ch, al
inc esi
mov byte [esp + 0x11], ch
test dl, dl
je 0x1003f82e
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 [0x100af628]
sub ebx, 1
jne 0x1003f800
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 0x1003f948
test dl, dl
je 0x1003f89b
ucomisd xmm0, xmm7
lahf
test ah, 0x44
jp 0x1003f89b
inc esi
jmp 0x1003f82a
comisd xmm5, xmm0
jbe 0x1003f8a9
movsd qword [esp + 0x40], xmm0
jmp 0x1003f8b9
maxsd xmm0, xmm6
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [esp + 0x68]
test cl, cl
je 0x1003f82a
addsd xmm0, xmm1
sub esp, 8
movsd qword [esp + 0x70], xmm0
fld qword [esp + 0x70]
fstp qword [esp]
call fcn.100928a0
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 0x1003f903
xor cl, cl
mov byte [esp + 0x12], cl
jmp 0x1003f82e
mov cl, byte [esp + 0x12]
jmp 0x1003f82e
test dl, dl
je 0x1003f96b
ucomisd xmm0, xmm7
lahf
test ah, 0x44
jp 0x1003f96b
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 [0x100af628]
mov dl, byte [ebp + 0x20]
sub ebx, 1
jne 0x1003f7d0
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov edi, dword [esp + 0x20]
mov eax, dword [eax]
cmp esi, ebx
jne 0x1003f9d5
mov esi, dword [esp + 0x14]
mov byte [eax + esi], 0
mov eax, dword [ebp + 0x28]
mov byte [eax], 1
jmp 0x1003f9ee
comisd xmm5, xmm0
jbe 0x1003f979
movsd qword [esp + 0x40], xmm0
jmp 0x1003f989
maxsd xmm0, xmm6
movsd qword [esp + 0x50], xmm0
movsd xmm0, qword [esp + 0x68]
test cl, cl
je 0x1003f91b
addsd xmm0, xmm1
sub esp, 8
movsd qword [esp + 0x70], xmm0
fld qword [esp + 0x70]
fstp qword [esp]
call fcn.100928a0
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 0x1003f9cc
xor cl, cl
mov byte [esp + 0x12], cl
jmp 0x1003f91f
mov cl, byte [esp + 0x12]
jmp 0x1003f91f
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 [0x100af628]
add edi, eax
sub dword [esp + 0x30], 1
mov dl, byte [ebp + 0x20]
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], edi
jne 0x1003f7b0
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 0x1003f784
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 0x1003fafb
cmp esi, 1
jle 0x1003fafb
test cl, cl
je 0x1003fafb
cmp byte [ebp + 0x20], 0
jne 0x1003fafb
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 0x1003fba8
comisd xmm1, xmm2
jb 0x1003fb30
comisd xmm3, xmm1
jb 0x1003fb30
comisd xmm4, xmm2
jb 0x1003fb30
comisd xmm3, xmm4
jb 0x1003fb30
mov al, 1
jmp 0x1003fb32
xor al, al
and bl, al
mov byte [esp + 0x2c], bl
test cl, cl
je 0x1003fb7c
sub esp, 8
movsd qword [esp], xmm0
call fcn.100428b0
add esp, 8
test al, al
je 0x1003fb6e
movsd xmm0, qword [esp + 0x30]
comisd xmm0, xmmword [esp + 0x20]
jb 0x1003fb6e
movsd xmm1, qword [esp + 0x70]
comisd xmm1, xmm0
jb 0x1003fb6e
mov al, 1
jmp 0x1003fb70
xor al, al
movsd xmm5, qword [esp + 0x50]
and bl, al
mov byte [esp + 0x2c], bl
test bl, bl
je 0x1003fba8
fld qword [edi]
sub esp, 8
fstp qword [esp]
call fcn.100928a0
fstp qword [esp + 0x78]
movsd xmm5, qword [esp + 0x78]
add esp, 8
maxsd xmm5, qword [0x100af628]
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 0x1003fc34
cmp byte [ebp + 0x20], 0
je 0x1003fc3d
test bl, bl
je 0x1003fbe8
fld qword [esp + 0x50]
sub esp, 8
fstp qword [esp]
call fcn.100928a0
movsd xmm5, qword [esp + 0x58]
add esp, 8
fstp qword [esp + 0x70]
movsd xmm2, qword [esp + 0x70]
jmp 0x1003fbef
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 0x1003fc49
addsd xmm2, qword [esp + 0x78]
comisd xmm2, xmm1
jb 0x1003fc49
test bl, bl
je 0x1003fc2d
movsd xmm0, qword [0x100af628]
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 0x1003fdeb
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.10042160
add esp, 0x20
test al, al
je 0x1003fe0c
movsd xmm2, qword [esp + 0x60]
movsd xmm1, qword [esp + 0x30]
ucomisd xmm2, xmm1
lahf
test ah, 0x44
jnp 0x1003fdeb
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 0x1003fdaa
xor esi, esi
cmp dword [ebp + 0x10], 4
jl 0x1003fd74
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 0x1003fd29
movsd qword [ecx - 0x10], xmm2
movsd xmm0, qword [ecx - 8]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1003fd3d
movsd qword [ecx - 8], xmm2
movsd xmm0, qword [ecx]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1003fd4f
movsd qword [ecx], xmm2
movsd xmm0, qword [ecx + 8]
ucomisd xmm0, xmm1
lahf
test ah, 0x44
jp 0x1003fd63
movsd qword [ecx + 8], xmm2
add ecx, 0x20
sub edx, 1
jne 0x1003fd15
mov edx, dword [esp + 0x1c]
cmp esi, dword [ebp + 0x10]
jge 0x1003fd9e
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 0x1003fd92
movsd qword [ecx], xmm2
add ecx, 8
sub edx, 1
jne 0x1003fd80
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 0x1003fcf0
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 0x1003fcc8
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 0x1003fe03
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 0x1003fdeb
test bl, bl
je 0x1003fe28
movsd xmm1, qword [0x100af628]
jmp 0x1003fdf1
xorps xmm1, xmm1
jmp 0x1003fdf1
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