Function at 0x46f390
Capabilities:
Check if file exists
Delete file
Get file attributes
Set file attributes
Timestomp file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cbe7d
mov eax, dword fs:[0]
push eax
sub esp, 0x748
mov eax, dword [0x4fad60]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x700], ecx
mov ecx, dword [ebp + 8]
mov ebx, 7
xor edi, edi
xor edx, edx
mov dword [ebp - 0x6f4], ecx
mov dword [ebp - 0x71c], eax
mov dword [ebp - 0x238], ebx
mov dword [ebp - 0x23c], edi
mov word [ebp - 0x24c], dx
mov dword [ebp - 4], edi
xor eax, eax
mov word [ebp - 0x230], ax
mov eax, ecx
mov dword [ebp - 0x21c], ebx
mov dword [ebp - 0x220], edi
lea esi, [eax + 2]
mov dx, word [eax]
add eax, 2
cmp dx, di
jne 0x46f412
sub eax, esi
sar eax, 1
push eax
mov eax, ecx
lea esi, [ebp - 0x230]
call fcn.00403e70
lea ecx, [ebp - 0x6e4]
push ecx
mov byte [ebp - 4], 1
call fcn.004746d0
mov byte [ebp - 4], 2
push 0x10
mov dword [ebp - 0x714], edi
call fcn.00490dc4
add esp, 4
cmp eax, edi
je 0x46fc44
mov dword [eax], eax
mov dword [ebp - 0x718], eax
mov dword [eax + 4], eax
xor edx, edx
mov dword [ebp - 0x254], ebx
mov dword [ebp - 0x258], edi
mov word [ebp - 0x268], dx
or eax, 0xffffffff
mov dword [ebp - 0x6ec], eax
mov dword [ebp - 0x6e8], eax
lea eax, [ebp - 0x4b4]
push eax
mov byte [ebp - 4], 4
call fcn.004746d0
push 0x1ff
lea ecx, [ebp - 0x213]
push edi
mov byte [ebp - 4], 5
push ecx
mov byte [ebp - 0x214], 0
call fcn.00497ad0
mov eax, dword [ebp - 0x230]
mov esi, 8
add esp, 0xc
mov dword [ebp - 0x70c], edi
mov dword [ebp - 0x6f0], edi
mov dword [ebp - 0x6fc], edi
mov dword [ebp - 0x708], edi
mov dword [ebp - 0x704], edi
cmp dword [ebp - 0x21c], esi
jae 0x46f4f1
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
test bl, 1
je 0x46f535
call fcn.004148d0
test al, al
je 0x46f590
mov eax, dword [ebp - 0x230]
and ebx, 0xfffffffe
cmp dword [ebp - 0x21c], esi
jae 0x46f523
lea eax, [ebp - 0x230]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov dword [ebp - 0x6fc], 1
mov eax, dword [ebp - 0x230]
cmp dword [ebp - 0x21c], esi
jae 0x46f549
lea eax, [ebp - 0x230]
push edi
push 0x80
push 3
push edi
push 1
push 0xc0000000
push eax
call dword [0x505fec]
mov edi, eax
mov dword [ebp - 0x6ec], edi
cmp edi, 0xffffffff
jne 0x46f59a
mov edx, dword [ebp - 0x6f4]
push edx
push 0x4e6eac
mov esi, 0x503bc8
mov edi, 0x7ab8
call fcn.004127a0
add esp, 8
jmp 0x46fa01
mov edi, 0x7ab7
jmp 0x46fa01
lea ecx, [ebp - 0x6e4]
call fcn.004753b0
xor eax, eax
jmp 0x46f5b0
mov cl, byte [ebp + eax - 0x6c8]
cmp cl, byte [eax + 0x4e1fa4]
jne 0x46f5cf
inc eax
cmp eax, 9
jl 0x46f5b0
mov edi, 0x9c40
jmp 0x46fa01
lea edx, [ebp - 0x708]
push edx
push edi
call dword [0x506024]
test eax, eax
jne 0x46f5eb
mov edi, 0x7aba
jmp 0x46fa01
mov ecx, dword [ebp - 0x704]
mov edx, dword [ebp - 0x708]
push 1
lea eax, [ebp - 0x24c]
push eax
push ecx
push edx
lea ecx, [ebp - 0x230]
call fcn.00472ac0
test eax, eax
jne 0x46f61b
mov edi, 0x7ab9
jmp 0x46fa01
mov edi, esi
mov esi, dword [ebp - 0x230]
cmp dword [ebp - 0x21c], edi
jae 0x46f631
lea esi, [ebp - 0x230]
mov eax, dword [ebp - 0x704]
mov ecx, dword [ebp - 0x708]
push eax
push ecx
lea eax, [ebp - 0x718]
call fcn.0046eb80
add esp, 8
test eax, eax
jne 0x46f6b3
lea esi, [ebp - 0x4b4]
call fcn.004747f0
lea ecx, [ebp - 0x268]
call fcn.00404690
lea esi, [ebp - 0x718]
call fcn.00472ee0
lea esi, [ebp - 0x6e4]
call fcn.004747f0
lea ecx, [ebp - 0x230]
call fcn.00404690
lea ecx, [ebp - 0x24c]
call fcn.00404690
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00490a21
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp - 0x24c]
cmp dword [ebp - 0x238], edi
jae 0x46f6c7
lea eax, [ebp - 0x24c]
push 0
push 0x80
push 2
push 0
push 1
push 0xc0000000
push eax
call dword [0x505fec]
mov dword [ebp - 0x6e8], eax
cmp eax, 0xffffffff
jne 0x46f6f5
mov edi, 0x7ab8
jmp 0x46fa01
lea edx, [ebp - 0x754]
push edx
mov edx, dword [ebp - 0x6ec]
lea eax, [ebp - 0x738]
push eax
lea ecx, [ebp - 0x740]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetFileTime]
mov eax, dword [ebp - 0x700]
mov ecx, dword [eax + 0x808]
push ecx
lea esi, [ebp - 0x4b4]
call fcn.004755b0
lea eax, [ebp - 0x718]
mov ecx, esi
call fcn.00475180
mov ecx, esi
call fcn.00474bf0
lea ebx, [ebp - 0x214]
mov eax, esi
call fcn.00474aa0
mov esi, dword [ebp - 0x6e8]
push 0
push 0
push 0
push esi
call dword [0x50600c]
push 0
lea edx, [ebp - 0x70c]
push edx
push 0x200
mov eax, ebx
push eax
push esi
call dword [0x506004]
test eax, eax
jne 0x46f789
mov edi, 0x7abb
jmp 0x46fa01
mov ecx, dword [ebp - 0x700]
mov byte [ebp - 4], 6
mov edx, dword [ecx + 0x818]
push edx
call fcn.0048d7af
mov ecx, dword [ebp - 0x6ec]
add esp, 4
push 0
push 0
mov ebx, eax
mov dword [ebp - 4], 5
mov eax, dword [ebp - 0x704]
mov edi, dword [ebp - 0x708]
push 0
push ecx
mov dword [ebp - 0x6f0], ebx
mov dword [ebp - 0x6f4], eax
call dword [0x50600c]
jmp 0x46f7e0
mov edx, dword [ebp - 0x700]
mov eax, dword [edx + 0x818]
xor ecx, ecx
cmp dword [ebp - 0x6f4], ecx
jg 0x46f800
jl 0x46f7fc
cmp edi, eax
jae 0x46f800
mov esi, edi
jmp 0x46f802
mov esi, eax
push eax
push 0
push ebx
call fcn.00497ad0
mov ecx, dword [ebp - 0x6ec]
add esp, 0xc
push 0
lea eax, [ebp - 0x70c]
push eax
push esi
push ebx
push ecx
call dword [0x505ffc]
test eax, eax
je 0x46f9cc
mov eax, dword [ebp - 0x6e8]
push 0
lea edx, [ebp - 0x70c]
push edx
push esi
push ebx
push eax
call dword [0x506004]
test eax, eax
je 0x46f77f
sub edi, esi
sbb dword [ebp - 0x6f4], 0
js 0x46f85f
jg 0x46f7e0
test edi, edi
jne 0x46f7e0
test ebx, ebx
je 0x46f876
push ebx
call fcn.00491285
add esp, 4
mov dword [ebp - 0x6f0], 0
mov eax, dword [ebp - 0x718]
mov edi, dword [eax]
cmp edi, eax
je 0x46f938
jmp 0x46f890
xor eax, eax
mov dword [ebp - 0x730], eax
mov dword [ebp - 0x72c], eax
mov dword [ebp - 0x728], eax
mov dword [ebp - 0x724], eax
mov dword [ebp - 0x720], eax
mov esi, dword [edi + 0xc]
mov ecx, dword [edi + 8]
push esi
mov dword [ebp - 0x6f4], ecx
call fcn.0048d7af
push esi
mov ebx, eax
push 0
push ebx
call fcn.00497ad0
mov edx, dword [ebp - 0x6f4]
mov ecx, dword [ebp - 0x6e8]
add esp, 0x10
lea eax, [ebp - 0x730]
push eax
push 0
push esi
push ebx
add edx, 0x200
push ecx
mov dword [ebp - 0x728], edx
call dword [0x505ffc]
mov edx, dword [ebp - 0x700]
push ebx
push edx
mov ecx, ebx
call fcn.0046f1d0
mov ecx, dword [ebp - 0x6e8]
lea eax, [ebp - 0x730]
push eax
push 0
push esi
push ebx
push ecx
call dword [0x506004]
push ebx
call fcn.00491285
mov edi, dword [edi]
add esp, 4
cmp edi, dword [ebp - 0x718]
jne 0x46f890
mov esi, dword [ebp - 0x6e8]
lea edx, [ebp - 0x754]
push edx
lea eax, [ebp - 0x738]
push eax
lea ecx, [ebp - 0x740]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
mov edx, dword [ebp - 0x6ec]
push edx
call dword [0x506034]
test eax, eax
je 0x46f9d3
push esi
call dword [0x506034]
test eax, eax
je 0x46f9d3
mov ecx, dword [ebp - 0x24c]
or eax, 0xffffffff
mov dword [ebp - 0x6ec], eax
mov dword [ebp - 0x6e8], eax
mov eax, 8
cmp dword [ebp - 0x238], eax
jae 0x46f99e
lea ecx, [ebp - 0x24c]
cmp dword [ebp - 0x21c], eax
mov eax, dword [ebp - 0x230]
jae 0x46f9b2
lea eax, [ebp - 0x230]
push eax
call fcn.00472270
mov edi, eax
neg edi
sbb edi, edi
and edi, 0xffff8542
add edi, 0x7abe
jmp 0x46fa01
mov edi, 0x7abd
jmp 0x46fa01
mov edi, 0x7ac1
jmp 0x46fa01
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov eax, dword [ebp - 0x71c]
test eax, eax
je 0x46fa15
mov dword [eax], edi
cmp dword [ebp - 0x6fc], 0
mov esi, 8
je 0x46fa40
mov eax, dword [ebp - 0x230]
cmp dword [ebp - 0x21c], esi
jae 0x46fa37
lea eax, [ebp - 0x230]
push 1
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
mov eax, dword [ebp - 0x6ec]
cmp eax, 0xffffffff
je 0x46fa52
push eax
call dword [0x506034]
mov eax, dword [ebp - 0x6e8]
cmp eax, 0xffffffff
je 0x46fa64
push eax
call dword [0x506034]
mov eax, dword [ebp - 0x6f0]
test eax, eax
je 0x46fa77
push eax
call fcn.00491285
add esp, 4
mov eax, dword [ebp - 0x24c]
cmp dword [ebp - 0x238], esi
jae 0x46fa8b
lea eax, [ebp - 0x24c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x46fabc
shr eax, 4
not eax
and eax, 1
je 0x46fabc
mov eax, dword [ebp - 0x24c]
cmp dword [ebp - 0x238], esi
jae 0x46fab5
lea eax, [ebp - 0x24c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test edi, edi
je 0x46fba9
cmp edi, 0x9c40
je 0x46fba9
mov eax, edi
lea esi, [ebp - 0x284]
call fcn.0046af80
mov byte [ebp - 4], 8
cmp dword [eax + 0x14], 8
jb 0x46fae9
mov eax, dword [eax]
mov ecx, dword [ebp - 0x230]
mov esi, 8
cmp dword [ebp - 0x21c], esi
jae 0x46fb02
lea ecx, [ebp - 0x230]
push eax
push edi
push ebx
push ecx
push 0x4e6ed0
mov ecx, 0x503bc8
call fcn.00412730
add esp, 0x14
cmp dword [ebp - 0x270], esi
jb 0x46fb2f
mov eax, dword [ebp - 0x284]
push eax
call fcn.00490a16
add esp, 4
lea esi, [ebp - 0x4b4]
call fcn.004747f0
lea esi, [ebp - 0x718]
call fcn.00472ee0
lea esi, [ebp - 0x6e4]
call fcn.004747f0
mov esi, 8
cmp dword [ebp - 0x21c], esi
jb 0x46fb6c
mov ecx, dword [ebp - 0x230]
push ecx
call fcn.00490a16
add esp, 4
xor edx, edx
mov dword [ebp - 0x21c], 7
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], dx
cmp dword [ebp - 0x238], esi
jb 0x46f693
mov eax, dword [ebp - 0x24c]
push eax
call fcn.00490a16
add esp, 4
jmp 0x46f693
lea esi, [ebp - 0x4b4]
call fcn.004747f0
mov edi, dword [ebp - 0x718]
mov eax, dword [edi]
mov dword [edi], edi
mov dword [edi + 4], edi
cmp eax, edi
je 0x46fbd6
mov esi, dword [eax]
push eax
call fcn.00490a16
add esp, 4
mov eax, esi
cmp esi, edi
jne 0x46fbc5
push edi
call fcn.00490a16
add esp, 4
lea esi, [ebp - 0x6e4]
call fcn.004747f0
mov esi, 8
cmp dword [ebp - 0x21c], esi
jb 0x46fc06
mov ecx, dword [ebp - 0x230]
push ecx
call fcn.00490a16
add esp, 4
xor edx, edx
mov dword [ebp - 0x21c], 7
mov dword [ebp - 0x220], 0
mov word [ebp - 0x230], dx
cmp dword [ebp - 0x238], esi
jb 0x46fc3a
mov eax, dword [ebp - 0x24c]
push eax
call fcn.00490a16
add esp, 4
mov eax, 1
jmp 0x46f695
lea ecx, [ebp - 0x6fc]
push ecx
lea ecx, [ebp - 0x74c]
mov dword [ebp - 0x6fc], edi
call fcn.00490ac9
push 0x4e94b0
lea edx, [ebp - 0x74c]
push edx
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
call fcn.00495f48
int3