Function at 0x405983
Capabilities:
Check if file exists
Delete file
Move file

Disassembly:
push 0x60
mov eax, 0x46c256
call fcn.004438a7
call fcn.00411936
call fcn.00412aa5
call fcn.00411936
cmp word [0x487d48], 0
mov esi, dword [eax + 0x28]
je 0x4059e3
call fcn.00419926
test eax, eax
jne 0x4059cc
push dword [0x488528]
push str.ori_pid
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00419806
add esp, 0xc
push 0x487d48
push 0x475234
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00419806
add esp, 0xc
mov edi, str.registtime
push edi
lea eax, [ebp - 0x20]
push str.SOFTWARE360DrvMgr
push eax
call fcn.004196b5
add esp, 0xc
and dword [ebp - 4], 0
lea ebx, [ebp - 0x20]
call fcn.00406d96
call fcn.00406ddb
xor ebx, ebx
cmp esi, ebx
je 0x405a19
mov eax, dword [ebp - 0x20]
cmp dword [eax - 0xc], ebx
jne 0x405a88
push ebx
call fcn.0043f532
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x14]
mov dword [esp], 0x474f2c
push eax
mov dword [ebp - 0x2c], edx
call fcn.00402ad3
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 4], 1
call fcn.00404078
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00404056
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00404030
push eax
lea eax, [ebp - 0x14]
push str._04d:_02d:_02d
push eax
call fcn.00402e53
add esp, 0x14
push dword [ebp - 0x14]
push edi
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00419806
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x14]
add esp, 0xc
add eax, 0xfffffff0
call fcn.004031f6
cmp esi, ebx
jne 0x405ac3
push ebx
push str.SOFTWARE_fbd30ee5_8150_549e_9aed_fd9d444318
mov edi, SysReAllocString
push edi
call fcn.00419561
add esp, 0xc
push ebx
call fcn.0043f532
pop ecx
push edx
push eax
push edi
call fcn.00419908
add esp, 0xc
push edi
call fcn.00419857
pop ecx
inc eax
push eax
push edi
call fcn.0041988e
pop ecx
pop ecx
push 0x474f2c
lea eax, [ebp - 0x1c]
push eax
call fcn.00402ad3
mov byte [ebp - 4], 2
cmp esi, ebx
jne 0x405af1
call fcn.004185ad
push edx
push eax
lea eax, [ebp - 0x1c]
push str.i_I64u
push eax
call fcn.00402e53
add esp, 0x10
mov eax, dword [ebp - 0x1c]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov edi, esp
call fcn.00402cca
add eax, 0x10
mov dword [edi], eax
push ecx
mov byte [ebp - 4], 3
mov eax, esp
mov dword [ebp - 0x14], esp
mov edi, 0x488190
push edi
push eax
call fcn.00402ad3
mov byte [ebp - 4], 4
mov eax, dword [0x488528]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x24], esp
mov ebx, esp
call fcn.00402cca
add eax, 0x10
mov dword [ebx], eax
push ecx
mov byte [ebp - 4], 5
mov eax, esp
mov dword [ebp - 0x2c], esp
mov ebx, 0x487d48
push ebx
push eax
call fcn.00402ad3
xor eax, eax
test esi, esi
setne al
mov byte [ebp - 4], 2
inc eax
push eax
call fcn.0041921c
add esp, 0x10
mov eax, esp
mov dword [ebp - 0x2c], esp
push 0x474f2c
push eax
call fcn.00402ad3
push ecx
mov byte [ebp - 4], 6
mov eax, esp
mov dword [ebp - 0x24], esp
push edi
push eax
call fcn.00402ad3
mov byte [ebp - 4], 7
mov eax, dword [0x488528]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x18], esp
mov edi, esp
call fcn.00402cca
add eax, 0x10
mov dword [edi], eax
push ecx
mov byte [ebp - 4], 8
mov eax, esp
mov dword [ebp - 0x14], esp
push ebx
push eax
call fcn.00402ad3
neg esi
sbb esi, esi
and esi, 0x3e8
add esi, 0x67
push esi
mov byte [ebp - 4], 2
call fcn.0041921c
add esp, 0x14
call fcn.00411936
lea ecx, [eax + 0x20]
lea eax, [ebp - 0x10]
push 0x475314
push eax
call fcn.00406b10
pop ecx
pop ecx
mov byte [ebp - 4], 9
push dword [ebp - 0x10]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x405d26
call fcn.0041b9c8
cmp dword [eax + 4], 6
jb 0x405cd6
push str._S__NoShortCut__pidQDXZ
lea eax, [ebp - 0x18]
push eax
call fcn.00402ad3
mov byte [ebp - 4], 0xa
call fcn.00411936
mov eax, dword [eax + 0x20]
sub eax, 0x10
call fcn.00402cca
add eax, 0x10
mov dword [ebp - 0x14], eax
lea esi, [ebp - 0x14]
mov byte [ebp - 4], 0xb
call fcn.004069cb
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
call fcn.004069cb
push eax
call dword [sym.imp.SHLWAPI.dll_PathQuoteSpacesW]
call fcn.00407cf1
mov ebx, dword [ebp - 0x14]
push ebx
lea eax, [ebp - 0x18]
push str.__InstPath_s
push eax
call fcn.00407652
add esp, 0xc
push 0x3c
pop esi
push esi
lea eax, [ebp - 0x6c]
push 0
push eax
call fcn.0043e330
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x18]
add esp, 0xc
lea edi, [ebp - 0x6c]
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x50], 5
mov dword [ebp - 0x68], 0x440
call fcn.004164d8
test eax, eax
je 0x405cbf
push 0x1770
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [ebp - 0x34], 0
lea eax, [ebx - 0x10]
call fcn.004031f6
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
call fcn.004031f6
mov edi, str..delete
lea eax, [ebp - 0x18]
push edi
push eax
lea ecx, [ebp - 0x10]
call fcn.00406b10
mov esi, dword [sym.imp.KERNEL32.dll_MoveFileExW]
pop ecx
pop ecx
push 1
push dword [eax]
push dword [ebp - 0x10]
call esi
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
call fcn.004031f6
lea eax, [ebp - 0x18]
push edi
push eax
lea ecx, [ebp - 0x10]
call fcn.00406b10
pop ecx
pop ecx
push 4
push 0
push dword [eax]
call esi
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff0
call fcn.004031f6
xor esi, esi
cmp dword [0x487d40], esi
je 0x405d38
cmp dword [0x487d44], esi
je 0x405d44
call fcn.00411936
mov ecx, eax
call fcn.00411aca
mov edi, dword [ebp + 8]
mov dword [edi + 0xa20], esi
call fcn.00404c0a
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
call fcn.004031f6
mov eax, dword [ebp - 0x1c]
add eax, 0xfffffff0
call fcn.004031f6
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
call fcn.004031f6
xor eax, eax
inc eax
call fcn.0044397f
ret 4