Function at 0x486660
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x454
mov eax, dword [0x66f040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, ecx
push 0
push dword [0x680da4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x486694
xor eax, eax
jmp 0x486960
cmp byte [ebp + 0xc], 1
mov eax, dword [0x680dd4]
cmove eax, dword [0x680dd0]
mov dword [0x680dd4], eax
xor eax, eax
mov dword [ebp - 0x10], 0x6e002e
mov dword [ebp - 0xc], 0x770065
mov word [ebp - 8], ax
test edi, edi
je 0x4866f9
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4866c6
sub ecx, edx
sar ecx, 1
lea esi, [ecx + 1]
cmp esi, 0x3fffffff
jle 0x4866e4
xor eax, eax
jmp 0x4866f9
add esi, esi
mov eax, esi
call fcn.005c9300
mov eax, esp
push 3
push esi
push edi
push eax
call fcn.0048f9c0
push eax
push ecx
mov ecx, ebx
call fcn.004996d0
mov esi, eax
add esp, 8
test esi, esi
je 0x48668d
mov ecx, esi
call fcn.00499890
mov edi, eax
test edi, edi
je 0x48673c
cmp dword [esi], 2
sete cl
test cl, cl
mov ecx, esi
je 0x486730
call fcn.0049a2a0
mov eax, edi
jmp 0x486960
call fcn.004998d0
mov eax, edi
jmp 0x486960
lea eax, [ebp - 0x448]
or edx, 0xffffffff
push eax
mov ecx, esi
call fcn.004997e0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x486770
cmp dword [esi], 2
sete cl
test cl, cl
mov ecx, esi
je 0x486959
call fcn.0049a2a0
jmp 0x48695e
mov eax, dword [ebp - 0x448]
mov edi, dword [sym.imp.USER32.dll_PostMessageW]
push 0
push 0
push 0x4c9
push dword [0x680c00]
mov dword [ebp - 0x450], eax
call edi
push str.Decompress_files._Please_wait.
push 0x6809e8
call fcn.00463930
add esp, 8
push 0
push 0
push 0x4c8
push dword [0x680c00]
call edi
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x216]
push eax
call fcn.005c7c50
xor edi, edi
add esp, 0xc
mov dword [ebp - 0x44c], edi
cmp dword [ebp - 0x450], edi
jle 0x486946
jmp 0x4867f0
push 0
push dword [0x680da4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x486944
lea eax, [ebp - 0x448]
mov edx, edi
push eax
mov ecx, esi
call fcn.004997e0
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x486946
lea eax, [ebp - 0x444]
push eax
push 0x64bbd4
lea eax, [ebp - 0x218]
push 0x64bbdc
push eax
call fcn.00463930
add esp, 0x10
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov edi, eax
cmp edi, 0xffffffff
je 0x486869
push 0x80
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov edx, dword [ebp - 0x44c]
lea eax, [ebp - 0x444]
push eax
mov ecx, esi
call fcn.00499840
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x48692f
cmp edi, 0xffffffff
je 0x48689d
push edi
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
cmp byte [ebp + 0xc], 1
jne 0x4868cf
test byte [ebp - 0x23c], 0x10
jne 0x4868cf
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x444]
push eax
call fcn.005c1fb8
add esp, 8
test eax, eax
je 0x4868cf
lea eax, [ebp - 0x448]
push eax
call fcn.0048c070
mov edi, dword [ebp - 0x44c]
movd xmm0, dword [ebp - 0x450]
inc edi
cvtdq2ps xmm0, xmm0
push 0
mov dword [ebp - 0x44c], edi
movd xmm1, edi
cvtdq2ps xmm1, xmm1
divss xmm1, xmm0
movd xmm0, dword [0x680bfc]
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm0
cvttss2si eax, xmm1
push eax
push 0x4c9
push dword [0x680c00]
call dword [sym.imp.USER32.dll_PostMessageW]
push 5
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp edi, dword [ebp - 0x450]
jl 0x4867f0
jmp 0x486946
cmp edi, 0xffffffff
je 0x486946
push edi
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
jmp 0x486946
xor ebx, ebx
cmp dword [esi], 2
mov ecx, esi
sete al
test al, al
je 0x486959
call fcn.0049a2a0
jmp 0x48695e
call fcn.004998d0
mov eax, ebx
lea esp, [ebp - 0x460]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005c02df
mov esp, ebp
pop ebp
ret