Function at 0x6218c0
Capabilities:
Check if file exists
Delete file
Get file attributes
Move file

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 0x6861a3
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0xf0
mov eax, dword [0x78a6d4]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov byte [ebp - 0xe5], dl
mov esi, ecx
mov dword [ebp - 0xe4], esi
cmp dword [esi + 0x14], 8
mov eax, esi
mov edi, dword [ebx + 8]
mov byte [ebp - 0xdd], 1
jb 0x621923
mov eax, dword [esi]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x622033
test al, 0x10
jne 0x622033
xor eax, eax
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
mov dword [ebp - 4], eax
cmp byte [ebp - 0xe5], al
jne 0x621986
lea eax, [ebp - 0x70]
cmp eax, esi
je 0x621f28
cmp dword [esi + 0x14], 8
mov eax, dword [esi + 0x10]
jb 0x621977
mov esi, dword [esi]
push eax
push esi
lea ecx, [ebp - 0x70]
call fcn.00447250
jmp 0x621f28
xor eax, eax
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 7
mov word [ebp - 0xa0], ax
mov dword [ebp - 0x88], eax
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], 7
mov word [ebp - 0x88], ax
push ecx
push 0x70c5b8
mov ecx, esi
mov byte [ebp - 4], 2
call fcn.00450600
mov dword [ebp - 0xf0], eax
cmp eax, 0xffffffff
je 0x621aa7
push eax
push 0
lea eax, [ebp - 0xb8]
mov ecx, esi
push eax
call int.004505a0
push eax
lea ecx, [ebp - 0xa0]
call fcn.004506b0
mov edx, dword [ebp - 0xa4]
cmp edx, 8
jb 0x621a41
mov ecx, dword [ebp - 0xb8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x621a37
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x622037
push edx
push ecx
call fcn.0058ab22
add esp, 8
mov eax, dword [ebp - 0xf0]
mov ecx, esi
push 0xffffffffffffffff
inc eax
push eax
lea eax, [ebp - 0xb8]
push eax
call int.004505a0
push eax
lea ecx, [ebp - 0x88]
call fcn.004506b0
mov edx, dword [ebp - 0xa4]
cmp edx, 8
jb 0x621aca
mov ecx, dword [ebp - 0xb8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x621a9b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x62203c
push edx
push ecx
call fcn.0058ab22
add esp, 8
jmp 0x621aca
lea eax, [ebp - 0x88]
cmp eax, esi
je 0x621aca
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x621abb
mov eax, dword [esi]
push dword [esi + 0x10]
lea ecx, [ebp - 0x88]
push eax
call fcn.00447250
mov eax, dword [edi + 0x10]
test eax, eax
jne 0x621c35
cmp dword [ebp - 0x8c], 8
lea edx, [ebp - 0xa0]
mov eax, dword [ebp - 0x90]
cmovae edx, dword [ebp - 0xa0]
mov ecx, dword [ebp - 0x5c]
mov dword [ebp - 0xf0], eax
mov dword [ebp - 0xf4], edx
mov dword [ebp - 0xec], ecx
cmp eax, ecx
ja 0x621b34
lea esi, [eax + eax]
mov dword [ebp - 0x60], eax
cmp ecx, 8
lea edi, [ebp - 0x70]
push esi
cmovae edi, dword [ebp - 0x70]
push edx
push edi
call fcn.0058c9c0
add esp, 0xc
xor eax, eax
mov word [esi + edi], ax
mov esi, dword [ebp - 0xe4]
jmp 0x621c4e
cmp eax, 0x7ffffffe
ja 0x622041
mov esi, eax
or esi, 7
cmp esi, 0x7ffffffe
jbe 0x621b63
mov eax, 0xfffffffe
mov esi, accept
push eax
call fcn.00447610
add esp, 4
mov edi, eax
jmp 0x621bc8
mov edx, ecx
mov eax, accept
shr edx, 1
sub eax, edx
cmp ecx, eax
jbe 0x621b89
mov eax, 0xfffffffe
mov esi, accept
push eax
call fcn.00447610
add esp, 4
mov edi, eax
jmp 0x621bc8
lea eax, [ecx + edx]
cmp esi, eax
cmovb esi, eax
lea eax, [esi + 1]
cmp eax, 0x7fffffff
ja 0x622046
add eax, eax
cmp eax, 0x1000
jb 0x621bb5
push eax
call fcn.00447610
add esp, 4
mov edi, eax
jmp 0x621bc8
test eax, eax
je 0x621bc6
push eax
call fcn.0058a8a1
add esp, 4
mov edi, eax
jmp 0x621bc8
xor edi, edi
mov eax, dword [ebp - 0xf0]
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x60], eax
lea esi, [eax + eax]
push esi
push dword [ebp - 0xf4]
push edi
call fcn.0058c9c0
xor eax, eax
add esp, 0xc
mov word [esi + edi], ax
mov eax, dword [ebp - 0xec]
cmp eax, 8
jb 0x621c2a
mov ecx, dword [ebp - 0x70]
lea edx, [eax*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x621c20
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x62204b
push edx
push ecx
call fcn.0058ab22
add esp, 8
mov esi, dword [ebp - 0xe4]
mov dword [ebp - 0x70], edi
jmp 0x621c4e
lea ecx, [ebp - 0x70]
cmp ecx, edi
je 0x621c4e
cmp dword [edi + 0x14], 8
jb 0x621c44
mov edi, dword [edi]
push eax
push edi
lea ecx, [ebp - 0x70]
call fcn.00447250
cmp dword [ebp - 0x5c], 8
lea ecx, [ebp - 0x70]
mov eax, dword [ebp - 0x60]
cmovae ecx, dword [ebp - 0x70]
cmp word [ecx + eax*2 - 2], 0x5c
je 0x621c73
push 1
push 0x70cbfc
lea ecx, [ebp - 0x70]
call int.0044e0d0
push 0x40
lea eax, [ebp - 0x58]
push 0
push eax
call fcn.0058d130
add esp, 0xc
mov dword [ebp - 0xbc], 0
xorps xmm0, xmm0
lea eax, [ebp - 0x100]
movups xmmword [ebp - 0xdc], xmm0
push eax
movups xmmword [ebp - 0xcc], xmm0
call fcn.005a1c46
add esp, 4
lea eax, [ebp - 0x100]
push eax
lea eax, [ebp - 0xdc]
push eax
call fcn.005a6550
lea eax, [ebp - 0xdc]
push eax
push str._H_M_S_d_m_Y
lea eax, [ebp - 0x58]
push 0x20
push eax
call fcn.005a7752
add esp, 0x18
lea ecx, [ebp - 0x70]
push 0x1f
push str.AnyConnect_delete_after_reboot_
call int.0044e0d0
lea ecx, [ebp - 0x58]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x621cf0
sub ecx, edx
lea eax, [ebp - 0x58]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x70]
call int.0044e0d0
push 1
push 0x74523c
lea ecx, [ebp - 0x70]
call int.0044e0d0
cmp dword [ebp - 0x74], 8
lea eax, [ebp - 0x88]
push dword [ebp - 0x78]
cmovae eax, dword [ebp - 0x88]
lea ecx, [ebp - 0x70]
push eax
call int.0044e0d0
cmp dword [ebp - 0x5c], 8
lea ecx, [ebp - 0x70]
mov eax, esi
cmovae ecx, dword [ebp - 0x70]
cmp dword [esi + 0x14], 8
jb 0x621d4d
mov eax, dword [esi]
push 9
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x621e8d
cmp dword [ebp - 0x5c], 8
lea eax, [ebp - 0x70]
mov dword [ebp - 0xe4], eax
jb 0x621d7b
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0xe4], eax
test eax, eax
je 0x621dc8
push eax
call fcn.0059a3bd
inc eax
add esp, 4
cmp eax, 0x3fffffff
jg 0x621dc8
add eax, eax
mov dword [ebp - 0xec], eax
call fcn.0058b710
mov edi, esp
test edi, edi
je 0x621dc8
push 0
push 0
push dword [ebp - 0xec]
mov byte [edi], 0
push edi
push 0xffffffffffffffff
push dword [ebp - 0xe4]
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor ecx, ecx
test eax, eax
cmove edi, ecx
jmp 0x621dca
xor edi, edi
cmp dword [esi + 0x14], 8
mov eax, esi
mov dword [ebp - 0xe4], esi
jb 0x621de0
mov eax, dword [esi]
mov dword [ebp - 0xe4], eax
test eax, eax
je 0x621e3d
push eax
call fcn.0059a3bd
inc eax
add esp, 4
cmp eax, 0x3fffffff
jg 0x621e3d
add eax, eax
mov dword [ebp - 0xec], eax
call fcn.0058b710
mov eax, esp
mov dword [ebp - 0xf4], eax
test eax, eax
je 0x621e3d
push 0
push 0
push dword [ebp - 0xec]
mov byte [eax], 0
push eax
push 0xffffffffffffffff
push dword [ebp - 0xe4]
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
xor ecx, ecx
test eax, eax
mov eax, dword [ebp - 0xf4]
cmove eax, ecx
jmp 0x621e3f
xor eax, eax
push edi
push eax
push str.Unable_to_move__s_to__s
push 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.::MoveFileEx
push 0x45
push 0x7a
push str.C:_temp_build_thehoffQuicksilver_fcs0.742171161775Quicksilver_fcs_vpnCommonUtilityDeleteFile.cpp
push str.FileRenameDeleteOnReboot
call fcn.00612830
lea eax, [ebp - 0x70]
mov byte [ebp - 0xdd], 0
add esp, 0x28
cmp eax, esi
je 0x621e8d
cmp dword [esi + 0x14], 8
mov eax, dword [esi + 0x10]
jb 0x621e83
mov esi, dword [esi]
push eax
push esi
lea ecx, [ebp - 0x70]
call fcn.00447250
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x74]
cmp edx, 8
jb 0x621ece
mov ecx, dword [ebp - 0x88]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x621ec4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x62204b
push edx
push ecx
call fcn.0058ab22
add esp, 8
xor eax, eax
mov dword [ebp - 0x78], 0
mov byte [ebp - 4], al
mov edx, dword [ebp - 0x8c]
mov dword [ebp - 0x74], 7
mov word [ebp - 0x88], ax
cmp edx, 8
jb 0x621f28
mov ecx, dword [ebp - 0xa0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x621f1e
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x62204b
push edx
push ecx
call fcn.0058ab22
add esp, 8
cmp dword [ebp - 0x5c], 8
lea eax, [ebp - 0x70]
push 4
cmovae eax, dword [ebp - 0x70]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x621fd3
cmp dword [ebp - 0x5c], 8
lea esi, [ebp - 0x70]
jb 0x621f56
mov esi, dword [ebp - 0x70]
test esi, esi
je 0x621f9d
push esi
call fcn.0059a3bd
inc eax
add esp, 4
cmp eax, 0x3fffffff
jg 0x621f9d
add eax, eax
mov dword [ebp - 0xec], eax
call fcn.0058b710
mov edi, esp
test edi, edi
je 0x621f9d
push 0
push 0
push dword [ebp - 0xec]
mov byte [edi], 0
push edi
push 0xffffffffffffffff
push esi
push 0
push 3
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
neg eax
sbb eax, eax
and eax, edi
jmp 0x621f9f
xor eax, eax
push eax
push str.Unable_to_mark_file__s_for_deletion
push 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.::MoveFileEx
push 0x45
push 0x87
push str.C:_temp_build_thehoffQuicksilver_fcs0.742171161775Quicksilver_fcs_vpnCommonUtilityDeleteFile.cpp
push str.FileRenameDeleteOnReboot
call fcn.00612830
add esp, 0x24
mov byte [ebp - 0xdd], 0
mov edx, dword [ebp - 0x5c]
cmp edx, 8
jb 0x622009
mov ecx, dword [ebp - 0x70]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x621fff
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x622050
push edx
push ecx
call fcn.0058ab22
add esp, 8
mov al, byte [ebp - 0xdd]
lea esp, [ebp - 0x10c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0058a893
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
xor al, al
jmp 0x62200f
call fcn.005968cf
call fcn.005968cf
call fcn.00446fa0
call fcn.00446f00
call fcn.005968cf
call fcn.005968cf
int3