Function at 0x4418d0
Capabilities:
Check if file exists

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d4585
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x38
push esi
push edi
mov eax, dword [0x64c00c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.00424ba0
mov ecx, eax
call fcn.00424e70
ucomiss xmm0, dword [0x63c634]
movss dword [ebp - 0x20], xmm0
lahf
test ah, 0x44
jp 0x441930
xor eax, eax
jmp 0x441cac
call fcn.00424ba0
lea eax, [ebp - 0x18]
push eax
call fcn.004413a0
mov dword [ebp - 4], 0
or edi, 0xffffffff
mov eax, dword [ebp - 0x18]
cmp dword [eax - 0xc], 0
jne 0x441958
xor esi, esi
jmp 0x441c8b
call fcn.00405800
mov ecx, eax
test ecx, ecx
je 0x441cc2
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x14], eax
movss xmm0, dword [ebp - 0x20]
mov eax, dword [ebx + 8]
push 0x638eb0
cvtps2pd xmm0, xmm0
sub esp, 8
mov byte [ebp - 4], 1
movsd qword [esp], xmm0
push dword [ebx + 0xc]
movsd qword [ebp - 0x30], xmm0
push dword [eax]
lea eax, [ebp - 0x14]
sub esp, 8
movsd qword [esp], xmm0
push dword [ebp - 0x18]
push str._s_.1f_s_d__.1f._s
push eax
call fcn.00408c40
add esp, 0x28
push dword [ebp - 0x14]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4419e5
mov eax, dword [ebx + 0x18]
movsd xmm0, qword [ebp - 0x30]
mov ecx, dword [ebx + 0x14]
movsd qword [eax], xmm0
lea eax, [ebp - 0x14]
push eax
call fcn.00406a90
mov esi, 1
jmp 0x441c6d
call fcn.00424ba0
mov ecx, eax
call fcn.00425060
mov esi, eax
mov dword [ebp - 0x24], esi
mov ecx, dword [esi]
cmp ecx, dword [esi + 4]
jne 0x441a04
xor esi, esi
jmp 0x441c6d
call fcn.00405800
mov ecx, eax
test ecx, ecx
je 0x441ccc
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
xorps xmm2, xmm2
xorps xmm4, xmm4
mov dword [ebp - 0x40], eax
movss dword [ebp - 0x44], xmm4
movss dword [ebp - 0x3c], xmm2
mov eax, dword [ebp - 0x24]
mov byte [ebp - 4], 2
mov esi, dword [esi]
cmp esi, dword [eax + 4]
je 0x441c4d
movsd xmm3, qword [ebp - 0x30]
nop word [eax + eax]
movsd xmm0, qword [esi]
movsd xmm5, qword [0x63c640]
ucomisd xmm0, xmm3
movsd qword [ebp - 0x38], xmm0
lahf
test ah, 0x44
jnp 0x441bbd
comisd xmm5, xmm0
jae 0x441bbd
call fcn.00405800
mov ecx, eax
test ecx, ecx
je 0x441cc2
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x1c], eax
movsd xmm0, qword [ebp - 0x38]
mov eax, dword [ebx + 8]
push 0x638eb0
sub esp, 8
mov byte [ebp - 4], 3
movsd qword [esp], xmm0
push dword [ebx + 0xc]
push dword [eax]
lea eax, [ebp - 0x1c]
sub esp, 8
movsd qword [esp], xmm0
push dword [ebp - 0x18]
push str._s_.1f_s_d__.1f._s
push eax
call fcn.00408c40
mov edi, dword [ebp - 0x1c]
add esp, 0x28
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x441b08
mov byte [ebp - 4], 2
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x441af9
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
movsd xmm3, qword [ebp - 0x30]
movss xmm4, dword [ebp - 0x44]
jmp 0x441bb5
movsd xmm2, qword [ebp - 0x38]
xorps xmm0, xmm0
movsd xmm3, qword [ebp - 0x30]
movaps xmm1, xmm2
subsd xmm1, xmm3
comisd xmm0, xmm1
movsd qword [ebp - 0x38], xmm1
jbe 0x441b3a
movaps xmm1, xmm2
xorps xmm1, xmmword [0x63c710]
subsd xmm1, xmm3
movsd qword [ebp - 0x38], xmm1
movss xmm4, dword [ebp - 0x44]
ucomiss xmm4, dword [0x63c618]
lahf
test ah, 0x44
jnp 0x441b70
movss xmm5, dword [ebp - 0x3c]
cvtps2pd xmm0, xmm5
comisd xmm0, xmm1
ja 0x441b70
cvtps2pd xmm0, xmm5
ucomisd xmm1, xmm0
lahf
test ah, 0x44
jp 0x441b9d
cvtps2pd xmm0, xmm4
comisd xmm2, xmm0
jbe 0x441b9d
cvtpd2ps xmm0, xmm2
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x40]
movss dword [ebp - 0x44], xmm0
call fcn.00406a90
movsd xmm5, qword [ebp - 0x38]
movsd xmm3, qword [ebp - 0x30]
movss xmm4, dword [ebp - 0x44]
cvtpd2ps xmm5, xmm5
movss dword [ebp - 0x3c], xmm5
mov byte [ebp - 4], 2
add edi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jle 0x441af1
movsd xmm5, qword [0x63c640]
mov eax, dword [ebp - 0x24]
add esi, 8
cmp esi, dword [eax + 4]
jne 0x441a50
xorps xmm2, xmm2
ucomiss xmm4, xmm2
lahf
test ah, 0x44
jnp 0x441c4a
movss xmm1, dword [0x63c720]
subsd xmm3, xmm5
xorps xmm0, xmm0
comisd xmm0, xmm3
jbe 0x441c00
movss xmm0, dword [ebp - 0x20]
xorps xmm3, xmm3
xorps xmm0, xmm1
cvtss2sd xmm3, xmm0
subsd xmm3, xmm5
movss xmm5, dword [ebp - 0x20]
movaps xmm0, xmm4
subss xmm0, xmm5
comiss xmm2, xmm0
jbe 0x441c1b
movaps xmm0, xmm4
xorps xmm0, xmm1
subss xmm0, xmm5
cvtss2sd xmm0, xmm0
comisd xmm0, xmm3
ja 0x441c4a
mov ecx, dword [ebx + 0x14]
lea eax, [ebp - 0x40]
push eax
call fcn.00406a90
movss xmm0, dword [ebp - 0x44]
mov esi, 1
mov eax, dword [ebx + 0x18]
or edi, 0xffffffff
cvtps2pd xmm0, xmm0
movsd qword [eax], xmm0
jmp 0x441c4f
or edi, 0xffffffff
xor esi, esi
mov byte [ebp - 4], 1
mov eax, edi
mov edx, dword [ebp - 0x40]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x441c6d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
mov eax, edi
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x441c8b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], edi
dec edi
test edi, edi
jg 0x441caa
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x14
push 0x80004005
call fcn.00405600
push 0x80004005
call fcn.00405600
int3