Function at 0x687f04
Capabilities:
Check if file exists
Create directory
Move file

Disassembly:
push 0x20
mov eax, 0x6a307b
call fcn.0049be25
mov dword [ebp - 0x28], edx
mov bl, cl
lea ecx, [ebp - 0x20]
mov dword [ebp - 4], 2
call fcn.00689cdf
push 0x750660
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 3
call fcn.004514db
mov byte [ebp - 4], 4
mov edi, 0x751814
mov esi, dword [ebp - 0x20]
test bl, bl
je 0x688074
push 0
push esi
lea ecx, [ebp + 0xc]
call fcn.004513db
test eax, eax
jne 0x688074
call fcn.00474f38
push eax
lea ecx, [ebp - 0x1c]
call fcn.00451c1b
mov byte [ebp - 4], 5
call fcn.00474f38
push eax
lea ecx, [ebp - 0x18]
call fcn.00451c1b
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 6
push eax
or ebx, 0xffffffff
call fcn.0066fec3
mov byte [ebp - 4], 7
push dword [eax]
lea eax, [ebp - 0x1c]
push esi
push edi
push eax
call fcn.00452465
mov byte [ebp - 4], 6
add esp, 0x10
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx - 0x10]
call fcn.0044ec01
lea eax, [ebp - 0x24]
push eax
call fcn.0066ff9b
mov byte [ebp - 4], 8
push dword [eax]
lea eax, [ebp - 0x18]
push esi
push edi
push eax
call fcn.00452465
mov byte [ebp - 4], 6
add esp, 0x10
mov ecx, dword [ebp - 0x24]
lea ecx, [ecx - 0x10]
call fcn.0044ec01
mov esi, dword [ebp - 0x18]
cmp dword [esi - 4], 1
jle 0x687ff2
push dword [esi - 0xc]
lea ecx, [ebp - 0x18]
call fcn.00451ca4
mov esi, dword [ebp - 0x18]
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edi, dword [ebp - 0x1c]
test eax, eax
je 0x68803c
cmp dword [edi - 4], 1
jle 0x688014
push dword [edi - 0xc]
lea ecx, [ebp - 0x1c]
call fcn.00451ca4
mov edi, dword [ebp - 0x1c]
cmp dword [esi - 4], 1
jle 0x688028
push dword [esi - 0xc]
lea ecx, [ebp - 0x18]
call fcn.00451ca4
mov esi, dword [ebp - 0x18]
push edi
push esi
call fcn.00512407
mov ebx, eax
test ebx, ebx
pop ecx
pop ecx
sete byte [0x7af258]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push edi
push ebx
push str.ReplaceFilesInAppFolder
push str._s_:_File_rename__result_:__d__NewFile_:__s_:_OldFile_:__s_ERROR:__d
call fcn.006778de
add esp, 0x18
lea ecx, [esi - 0x10]
call fcn.0044ec01
lea ecx, [edi - 0x10]
mov byte [ebp - 4], 4
call fcn.0044ec01
mov esi, dword [ebp - 0x20]
mov edi, 0x751814
push dword [ebp + 0x10]
lea eax, [ebp - 0x14]
push dword [ebp + 0xc]
push edi
push eax
call fcn.00452465
push dword [ebp - 0x14]
call fcn.0051621b
add esp, 0x14
test eax, eax
je 0x6880ac
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.ReplaceFilesInAppFolder
push str._s_:_Unable_to_create_temp_folder_:__d
call fcn.006778de
add esp, 0xc
mov ebx, dword [ebp - 0x28]
cmp ebx, 1
jne 0x68812b
push dword [ebp + 8]
lea ecx, [ebp - 0x18]
call fcn.00454b42
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x1c]
push dword [ebp - 0x14]
call fcn.00454b42
mov byte [ebp - 4], 0xa
mov edi, dword [ebp - 0x1c]
cmp dword [edi - 4], ebx
jle 0x6880e8
push dword [edi - 0xc]
lea ecx, [ebp - 0x1c]
call fcn.00451b0e
mov edi, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
cmp dword [edx - 4], 1
jle 0x6880ff
push dword [edx - 0xc]
lea ecx, [ebp - 0x18]
call fcn.00451b0e
mov edx, dword [ebp - 0x18]
push edi
call fcn.00465490
pop ecx
mov ecx, dword [ebp - 0x1c]
test eax, eax
sete byte [ebp - 0xd]
lea ecx, [ecx - 0x10]
call fcn.0044ec01
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x18]
lea ecx, [eax - 0x10]
call fcn.0044ec01
mov al, byte [ebp - 0xd]
jmp 0x68814a
push 0
lea ecx, [ebp - 0x14]
call fcn.00451c69
push 0
lea ecx, [ebp + 8]
mov edi, eax
call fcn.00451c69
mov edx, edi
mov ecx, eax
call fcn.006878b1
test al, al
je 0x688220
call fcn.00474f38
push eax
lea ecx, [ebp - 0x18]
call fcn.00451c1b
mov byte [ebp - 4], 0xb
call fcn.00474f38
push eax
lea ecx, [ebp - 0x1c]
call fcn.00451c1b
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x18]
push dword [ebp - 0x14]
push str._sZohoMeeting
push eax
call fcn.00452465
add esp, 0xc
lea eax, [ebp + 0xc]
lea ecx, [ebp - 0x1c]
push eax
call fcn.00451d78
mov eax, dword [ebp - 0x1c]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x24], esp
mov edi, esp
mov dword [ebp - 0x28], edi
push eax
mov dword [ebp - 0x28], eax
call fcn.0045207b
add eax, 0x10
mov dword [edi], eax
mov byte [ebp - 4], 0xd
mov edi, esp
mov ebx, dword [ebp - 0x18]
add ebx, 0xfffffff0
mov dword [ebp - 0x2c], edi
push ebx
call fcn.0045207b
add eax, 0x10
mov dword [edi], eax
pop ecx
mov byte [ebp - 4], 0xc
call fcn.0068763a
mov byte [ebp - 0xd], al
add esp, 4
mov eax, dword [ebp - 0x14]
mov edi, esp
add eax, 0xfffffff0
mov dword [ebp - 0x2c], edi
push eax
call fcn.0045207b
add eax, 0x10
pop ecx
mov dword [edi], eax
call fcn.00686447
pop ecx
mov ecx, dword [ebp - 0x28]
call fcn.0044ec01
mov ecx, ebx
mov byte [ebp - 4], 4
call fcn.0044ec01
push 0
lea ecx, [ebp + 8]
call fcn.00451c69
push eax
call fcn.005120b1
pop ecx
jmp 0x68824a
cmp ebx, 1
jne 0x688231
push str.ReplaceFilesInAppFolder
push str._s_:_7z_Unzip_failed
jmp 0x68823f
test ebx, ebx
jne 0x688246
push str.ReplaceFilesInAppFolder
push 0x771070
call fcn.006778de
pop ecx
pop ecx
mov byte [ebp - 0xd], 0
mov ecx, dword [ebp - 0x14]
lea ecx, [ecx - 0x10]
call fcn.0044ec01
lea ecx, [esi - 0x10]
call fcn.0044ec01
mov ecx, dword [ebp + 8]
lea ecx, [ecx - 0x10]
call fcn.0044ec01
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.0044ec01
mov ecx, dword [ebp + 0x10]
add ecx, 0xfffffff0
call fcn.0044ec01
mov al, byte [ebp - 0xd]
call fcn.0049bdee
ret