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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1008786f
mov eax, dword fs:[0]
push eax
sub esp, 0x79c
mov eax, dword [0x100a5c90]
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 + 8]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x750], ecx
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0x770], ecx
mov ecx, 7
xor ebx, ebx
xor edx, edx
mov dword [ebp - 0x76c], eax
mov dword [ebp - 0x748], edi
mov dword [ebp - 0x270], ecx
mov dword [ebp - 0x274], ebx
mov word [ebp - 0x284], dx
mov dword [ebp - 4], ebx
mov dword [ebp - 0x21c], ecx
xor ecx, ecx
mov dword [ebp - 0x220], ebx
mov word [ebp - 0x230], cx
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x10031110
sub eax, edx
sar eax, 1
push eax
mov eax, dword [ebp - 0x76c]
lea esi, [ebp - 0x230]
call fcn.10003a30
mov byte [ebp - 4], 1
xor edx, edx
mov eax, edi
mov word [ebp - 0x2a0], dx
mov dword [ebp - 0x28c], 7
mov dword [ebp - 0x290], ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, bx
jne 0x10031153
sub eax, edx
sar eax, 1
push eax
mov eax, edi
lea esi, [ebp - 0x2a0]
call fcn.10003a30
mov byte [ebp - 4], 2
xor eax, eax
mov word [ebp - 0x268], ax
mov edi, 7
push ebx
mov eax, 0x1008da28
lea esi, [ebp - 0x268]
mov dword [ebp - 0x254], edi
mov dword [ebp - 0x258], ebx
call fcn.10003a30
xor ecx, ecx
mov dword [ebp - 0x238], edi
mov dword [ebp - 0x23c], ebx
mov word [ebp - 0x24c], cx
lea edx, [ebp - 0x738]
push edx
mov byte [ebp - 4], 4
call fcn.10034300
mov byte [ebp - 4], 5
push 0x10
mov dword [ebp - 0x764], ebx
call fcn.10067232
add esp, 4
cmp eax, ebx
je 0x10031bf0
mov dword [eax], eax
mov dword [ebp - 0x768], eax
mov dword [eax + 4], eax
xor eax, eax
mov dword [ebp - 0x2c4], edi
mov dword [ebp - 0x2c8], ebx
mov word [ebp - 0x2d8], ax
or eax, 0xffffffff
lea ecx, [ebp - 0x508]
push ecx
mov byte [ebp - 4], 7
mov dword [ebp - 0x740], eax
mov dword [ebp - 0x73c], eax
call fcn.10034300
push 0x1ff
lea edx, [ebp - 0x213]
push ebx
mov byte [ebp - 4], 8
push edx
lea esi, [edi + 1]
mov byte [ebp - 0x214], bl
call fcn.1006b580
mov eax, dword [ebp - 0x230]
add esp, 0xc
mov dword [ebp - 0x75c], ebx
mov dword [ebp - 0x744], ebx
mov dword [ebp - 0x758], ebx
mov dword [ebp - 0x754], ebx
cmp dword [ebp - 0x21c], esi
jae 0x1003126d
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 1
je 0x10031282
mov edi, 0x7ab7
jmp 0x100318c7
mov eax, dword [ebp - 0x230]
cmp dword [ebp - 0x21c], esi
jae 0x10031296
lea eax, [ebp - 0x230]
push ebx
push 0x80
push 3
push ebx
push 1
push 0xc0000000
push eax
call dword [0x100ac6c4]
mov edi, eax
mov dword [ebp - 0x740], edi
cmp edi, 0xffffffff
jne 0x100312dd
mov eax, dword [ebp - 0x76c]
push eax
push 0x100953d4
mov esi, 0x100aa2d0
mov edi, 0x7ab8
call fcn.10005ac0
add esp, 8
jmp 0x100318c7
lea ecx, [ebp - 0x738]
call fcn.10034de0
xor eax, eax
lea ebx, [ebx]
mov cl, byte [ebp + eax - 0x71c]
cmp cl, byte [eax + 0x10091754]
jne 0x1003130f
inc eax
cmp eax, 9
jl 0x100312f0
mov edi, 0x9c40
jmp 0x100318c7
lea edx, [ebp - 0x758]
push edx
push edi
call dword [0x100ac6fc]
test eax, eax
jne 0x1003132b
mov edi, 0x7aba
jmp 0x100318c7
lea eax, [ebp - 0x268]
push eax
push 1
lea ecx, [ebp - 0x230]
call fcn.1001f900
lea ecx, [ebp - 0x2bc]
push 0x10093c38
push ecx
lea ebx, [ebp - 0x268]
call fcn.10010ba0
add esp, 0x10
mov edi, eax
mov esi, ebx
mov byte [ebp - 4], 9
call fcn.100037e0
lea ecx, [ebp - 0x2bc]
mov byte [ebp - 4], 8
call fcn.10003710
mov edx, dword [ebp - 0x748]
push edx
lea eax, [ebp - 0x2bc]
push eax
call fcn.10010ba0
add esp, 8
mov edi, eax
mov byte [ebp - 4], 0xa
call fcn.100037e0
mov ebx, 8
lea ecx, [ebp - 0x2bc]
mov byte [ebp - 4], bl
call fcn.10003710
mov edx, dword [ebp - 0x754]
mov eax, dword [ebp - 0x758]
push 1
lea ecx, [ebp - 0x284]
push ecx
push edx
push eax
mov ecx, esi
call fcn.10032f00
test eax, eax
jne 0x100313d5
mov edi, 0x7ab9
jmp 0x100318c5
mov esi, dword [ebp - 0x230]
cmp dword [ebp - 0x21c], ebx
jae 0x100313e9
lea esi, [ebp - 0x230]
mov ecx, dword [ebp - 0x754]
mov edx, dword [ebp - 0x758]
push ecx
push edx
lea eax, [ebp - 0x768]
call fcn.1002fcd0
add esp, 8
test eax, eax
jne 0x10031490
lea esi, [ebp - 0x508]
call fcn.10034420
lea ecx, [ebp - 0x2d8]
call fcn.10003710
lea esi, [ebp - 0x768]
call fcn.10033330
lea esi, [ebp - 0x738]
call fcn.10034420
lea ecx, [ebp - 0x24c]
call fcn.10003710
lea ecx, [ebp - 0x268]
call fcn.10003710
lea ecx, [ebp - 0x2a0]
call fcn.10003710
lea ecx, [ebp - 0x230]
call fcn.10003710
lea ecx, [ebp - 0x284]
call fcn.10003710
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.10066b1b
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x284]
cmp dword [ebp - 0x270], ebx
jae 0x100314a4
lea eax, [ebp - 0x284]
push 0
push 0x80
push 2
push 0
push 1
push 0xc0000000
push eax
call dword [0x100ac6c4]
mov edi, eax
mov dword [ebp - 0x73c], edi
cmp edi, 0xffffffff
jne 0x100314d4
mov edi, 0x7ab8
jmp 0x100318c5
lea eax, [ebp - 0x798]
push eax
mov eax, dword [ebp - 0x740]
lea ecx, [ebp - 0x7a8]
push ecx
lea edx, [ebp - 0x7a0]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileTime]
mov ecx, dword [ebp - 0x750]
mov edx, dword [ecx + 0x808]
push edx
lea esi, [ebp - 0x508]
call fcn.10034fc0
lea eax, [ebp - 0x768]
mov ecx, esi
call fcn.10034bb0
mov ecx, esi
call fcn.100347f0
lea ebx, [ebp - 0x214]
mov eax, esi
call fcn.100346a0
push 0
push 0
push 0
push edi
call dword [0x100ac6e4]
push 0
lea eax, [ebp - 0x75c]
push eax
push 0x200
mov ecx, ebx
push ecx
push edi
call dword [0x100ac6dc]
test eax, eax
jne 0x10031562
mov edi, 0x7abb
jmp 0x100318c5
mov edx, dword [ebp - 0x750]
mov byte [ebp - 4], 0xb
mov eax, dword [edx + 0x818]
push eax
call fcn.1005f071
mov edx, dword [ebp - 0x740]
add esp, 4
push 0
push 0
mov dword [ebp - 4], 8
mov ecx, dword [ebp - 0x754]
mov edi, dword [ebp - 0x758]
push 0
mov ebx, eax
push edx
mov dword [ebp - 0x744], ebx
mov dword [ebp - 0x748], ecx
call dword [0x100ac6e4]
nop
mov eax, dword [ebp - 0x750]
mov eax, dword [eax + 0x818]
xor ecx, ecx
cmp dword [ebp - 0x748], ecx
jg 0x100315d0
jl 0x100315cc
cmp edi, eax
jae 0x100315d0
mov esi, edi
jmp 0x100315d2
mov esi, eax
push eax
push 0
push ebx
call fcn.1006b580
mov edx, dword [ebp - 0x740]
add esp, 0xc
push 0
lea ecx, [ebp - 0x75c]
push ecx
push esi
push ebx
push edx
call dword [0x100ac6d4]
test eax, eax
je 0x10031781
mov ecx, dword [ebp - 0x73c]
push 0
lea eax, [ebp - 0x75c]
push eax
push esi
push ebx
push ecx
call dword [0x100ac6dc]
test eax, eax
je 0x10031558
sub edi, esi
sbb dword [ebp - 0x748], 0
js 0x1003162f
jg 0x100315b0
test edi, edi
jne 0x100315b0
test ebx, ebx
je 0x10031646
push ebx
call fcn.10067956
add esp, 4
mov dword [ebp - 0x744], 0
mov eax, dword [ebp - 0x768]
mov edi, dword [eax]
cmp edi, eax
je 0x10031707
jmp 0x10031660
xor eax, eax
mov dword [ebp - 0x784], eax
mov dword [ebp - 0x780], eax
mov dword [ebp - 0x77c], eax
mov dword [ebp - 0x778], eax
mov dword [ebp - 0x774], eax
mov esi, dword [edi + 0xc]
mov edx, dword [edi + 8]
push esi
mov dword [ebp - 0x748], edx
call fcn.1005f071
push esi
mov ebx, eax
push 0
push ebx
call fcn.1006b580
mov eax, dword [ebp - 0x748]
mov edx, dword [ebp - 0x73c]
add esp, 0x10
lea ecx, [ebp - 0x784]
push ecx
push 0
push esi
push ebx
add eax, 0x200
push edx
mov dword [ebp - 0x77c], eax
call dword [0x100ac6d4]
mov eax, dword [ebp - 0x750]
push ebx
push eax
mov ecx, ebx
call fcn.1002ff00
mov edx, dword [ebp - 0x73c]
lea ecx, [ebp - 0x784]
push ecx
push 0
push esi
push ebx
push edx
call dword [0x100ac6dc]
push ebx
call fcn.10067956
mov edi, dword [edi]
add esp, 4
cmp edi, dword [ebp - 0x768]
jne 0x10031660
mov esi, dword [ebp - 0x73c]
lea eax, [ebp - 0x798]
push eax
lea ecx, [ebp - 0x7a8]
push ecx
lea edx, [ebp - 0x7a0]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
mov eax, dword [ebp - 0x740]
push eax
call dword [0x100ac70c]
test eax, eax
je 0x10031897
push esi
call dword [0x100ac70c]
test eax, eax
je 0x10031897
lea ecx, [ebp - 0x24c]
push ecx
or eax, 0xffffffff
push 1
lea ecx, [ebp - 0x230]
mov dword [ebp - 0x740], eax
mov dword [ebp - 0x73c], eax
call fcn.1001f900
add esp, 8
test al, al
jne 0x1003178b
mov edi, 0x7abe
jmp 0x100318c5
mov edi, 0x7abd
jmp 0x100318c5
lea edx, [ebp - 0x2a0]
push edx
lea edx, [ebp - 0x24c]
lea ecx, [ebp - 0x2bc]
call fcn.1001fca0
add esp, 4
mov edi, eax
lea esi, [ebp - 0x24c]
mov byte [ebp - 4], 0xd
call fcn.100037e0
lea ecx, [ebp - 0x2bc]
mov byte [ebp - 4], 8
call fcn.10003710
mov eax, dword [ebp - 0x23c]
add eax, 3
cmp eax, 0x104
ja 0x1003181c
lea eax, [ebp - 0x24c]
call fcn.1001f610
test eax, eax
je 0x10031826
push 0x10093f54
mov ebx, 1
or ecx, 0xffffffff
lea edi, [ebp - 0x24c]
call fcn.10020970
push eax
mov ecx, edi
push ecx
mov edx, 0x1009543c
call fcn.10033210
mov edx, dword [ebp - 0x23c]
add edx, 3
cmp edx, 0x104
jbe 0x100317d6
mov edi, 0x7abe
jmp 0x100318c5
mov ecx, dword [ebp - 0x24c]
mov esi, 8
cmp dword [ebp - 0x238], esi
jae 0x1003183f
lea ecx, [ebp - 0x24c]
mov eax, dword [ebp - 0x284]
cmp dword [ebp - 0x270], esi
jae 0x10031853
lea eax, [ebp - 0x284]
push 1
push 0
push 0
push ecx
push eax
call dword [0x100ac71c]
test eax, eax
jne 0x10031872
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, 0x7abe
jmp 0x100318c5
cmp dword [ebp + 0x10], 0
jne 0x10031893
mov eax, dword [ebp - 0x230]
cmp dword [ebp - 0x21c], esi
jae 0x1003188c
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor edi, edi
jmp 0x100318c5
mov edi, 0x7ac1
jmp 0x100318c5
xor ebx, ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x748], eax
mov eax, dword [ebp - 0x770]
cmp eax, ebx
je 0x100318df
mov dword [eax], edi
mov eax, dword [ebp - 0x740]
cmp eax, 0xffffffff
je 0x100318f1
push eax
call dword [0x100ac70c]
mov eax, dword [ebp - 0x73c]
cmp eax, 0xffffffff
je 0x10031903
push eax
call dword [0x100ac70c]
mov eax, dword [ebp - 0x744]
cmp eax, ebx
je 0x10031916
push eax
call fcn.10067956
add esp, 4
mov eax, dword [ebp - 0x284]
mov esi, 8
cmp dword [ebp - 0x270], esi
jae 0x1003192f
lea eax, [ebp - 0x284]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x10031960
shr eax, 4
not eax
and eax, 1
je 0x10031960
mov eax, dword [ebp - 0x284]
cmp dword [ebp - 0x270], esi
jae 0x10031959
lea eax, [ebp - 0x284]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp edi, ebx
je 0x10031ad4
cmp edi, 0x9c40
je 0x10031ad4
mov eax, edi
lea esi, [ebp - 0x2bc]
call fcn.10029bc0
mov byte [ebp - 4], 0xe
cmp dword [eax + 0x14], 8
jb 0x1003198d
mov eax, dword [eax]
mov ecx, dword [ebp - 0x230]
mov esi, 8
cmp dword [ebp - 0x21c], esi
jae 0x100319a6
lea ecx, [ebp - 0x230]
push eax
mov eax, dword [ebp - 0x748]
push edi
push eax
push ecx
push 0x100953f8
mov ecx, 0x100aa2d0
call fcn.10005a50
add esp, 0x14
cmp dword [ebp - 0x2a8], esi
jb 0x100319d9
mov ecx, dword [ebp - 0x2bc]
push ecx
call fcn.10066b10
add esp, 4
lea esi, [ebp - 0x508]
call fcn.10034420
lea esi, [ebp - 0x768]
call fcn.10033330
lea esi, [ebp - 0x738]
call fcn.10034420
mov esi, 8
cmp dword [ebp - 0x238], esi
jb 0x10031a16
mov edx, dword [ebp - 0x24c]
push edx
call fcn.10066b10
add esp, 4
xor eax, eax
mov edi, 7
mov dword [ebp - 0x238], edi
mov dword [ebp - 0x23c], ebx
mov word [ebp - 0x24c], ax
cmp dword [ebp - 0x254], esi
jb 0x10031a47
mov ecx, dword [ebp - 0x268]
push ecx
call fcn.10066b10
add esp, 4
xor edx, edx
mov dword [ebp - 0x254], edi
mov dword [ebp - 0x258], ebx
mov word [ebp - 0x268], dx
cmp dword [ebp - 0x28c], esi
jb 0x10031a73
mov eax, dword [ebp - 0x2a0]
push eax
call fcn.10066b10
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x28c], edi
mov dword [ebp - 0x290], ebx
mov word [ebp - 0x2a0], cx
cmp dword [ebp - 0x21c], esi
jb 0x10031a9f
mov edx, dword [ebp - 0x230]
push edx
call fcn.10066b10
add esp, 4
xor eax, eax
mov dword [ebp - 0x21c], edi
mov dword [ebp - 0x220], ebx
mov word [ebp - 0x230], ax
cmp dword [ebp - 0x270], esi
jb 0x10031470
mov ecx, dword [ebp - 0x284]
push ecx
call fcn.10066b10
add esp, 4
jmp 0x10031470
lea esi, [ebp - 0x508]
call fcn.10034420
mov edi, dword [ebp - 0x768]
mov eax, dword [edi]
mov dword [edi], edi
mov dword [edi + 4], edi
cmp eax, edi
je 0x10031b01
mov esi, dword [eax]
push eax
call fcn.10066b10
add esp, 4
mov eax, esi
cmp esi, edi
jne 0x10031af0
push edi
call fcn.10066b10
add esp, 4
lea esi, [ebp - 0x738]
call fcn.10034420
mov esi, 8
cmp dword [ebp - 0x238], esi
jb 0x10031b31
mov edx, dword [ebp - 0x24c]
push edx
call fcn.10066b10
add esp, 4
xor eax, eax
mov edi, 7
mov dword [ebp - 0x238], edi
mov dword [ebp - 0x23c], ebx
mov word [ebp - 0x24c], ax
cmp dword [ebp - 0x254], esi
jb 0x10031b62
mov ecx, dword [ebp - 0x268]
push ecx
call fcn.10066b10
add esp, 4
xor edx, edx
mov dword [ebp - 0x254], edi
mov dword [ebp - 0x258], ebx
mov word [ebp - 0x268], dx
cmp dword [ebp - 0x28c], esi
jb 0x10031b8e
mov eax, dword [ebp - 0x2a0]
push eax
call fcn.10066b10
add esp, 4
xor ecx, ecx
mov dword [ebp - 0x28c], edi
mov dword [ebp - 0x290], ebx
mov word [ebp - 0x2a0], cx
cmp dword [ebp - 0x21c], esi
jb 0x10031bba
mov edx, dword [ebp - 0x230]
push edx
call fcn.10066b10
add esp, 4
xor eax, eax
mov dword [ebp - 0x21c], edi
mov dword [ebp - 0x220], ebx
mov word [ebp - 0x230], ax
cmp dword [ebp - 0x270], esi
jb 0x10031be6
mov ecx, dword [ebp - 0x284]
push ecx
call fcn.10066b10
add esp, 4
mov eax, 1
jmp 0x10031472
lea edx, [ebp - 0x744]
push edx
lea ecx, [ebp - 0x790]
mov dword [ebp - 0x744], ebx
call fcn.10066dc7
push 0x10099a10
lea eax, [ebp - 0x790]
push eax
mov dword [ebp - method.std::bad_alloc.virtual_0], vtable.std::bad_alloc.0
call fcn.1006752f
int3