Function at 0x100ace3
Capabilities:
Check if file exists
Delete file
Get common file path
Move file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x860
mov eax, dword [0x1035030]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor eax, eax
mov esi, 0x206
push esi
mov word [ebp - 0x824], ax
xor edi, edi
lea eax, [ebp - 0x822]
push edi
mov ebx, 0x80001101
push eax
mov dword [ebp - 0x82c], ecx
mov dword [ebp - 0x828], ebx
call sub.msvcrt.dll_memset
xor eax, eax
push esi
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push edi
push eax
call sub.msvcrt.dll_memset
xor eax, eax
push esi
mov word [ebp - 0x414], ax
lea eax, [ebp - 0x412]
push edi
push eax
call sub.msvcrt.dll_memset
xor eax, eax
push esi
mov word [ebp - 0x61c], ax
lea eax, [ebp - 0x61a]
push edi
push eax
call sub.msvcrt.dll_memset
xor eax, eax
mov word [ebp - 0x860], ax
lea edi, [ebp - 0x85e]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x848], ecx
lea edi, [ebp - 0x844]
stosd dword es:[edi], eax
mov dword [ebp - 0x850], ecx
lea edi, [ebp - 0x84c]
stosd dword es:[edi], eax
add esp, 0x30
lea eax, [ebp - 0x860]
push eax
mov dword [ebp - 0x830], ecx
mov dword [ebp - 0x83c], ecx
mov dword [ebp - 0x838], ecx
mov dword [ebp - 0x84c], ecx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [ebp - 0x848]
push eax
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
test eax, eax
jne 0x100ae0e
mov eax, dword [0x1035014]
cmp eax, 0x1035014
je 0x100b60d
test byte [eax + 0x1c], 1
je 0x100b60d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1002040
push 0xd
jmp 0x100b718
mov edi, dword [ebp - 0x848]
mov esi, dword [ebp - 0x844]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0x82c]
mov dword [ecx + 0x1d4], eax
lea eax, [ebp - 0x834]
push eax
call fcn.01013369
cmp dword [ebp - 0x834], 2
mov dword [ebp - 0x840], eax
jne 0x100ae6a
mov ecx, dword [ebp - 0x82c]
call fcn.01005495
test eax, eax
je 0x100ae6a
mov ecx, dword [ebp - 0x82c]
push 0
call fcn.0100555e
xor eax, eax
jmp 0x100b6b6
cmp dword [ebp - 0x834], 1
je 0x100ae7c
cmp dword [ebp - 0x834], 5
jne 0x100ae9d
mov ecx, dword [ebp - 0x82c]
call fcn.010057f3
test eax, eax
jl 0x100ae9d
lea eax, [ebp - 0x834]
push eax
call fcn.01013369
mov dword [ebp - 0x840], eax
cmp dword [ebp - 0x834], 0
jne 0x100aecc
mov eax, dword [0x1035014]
cmp eax, 0x1035014
je 0x100b60d
test byte [eax + 0x1c], 4
je 0x100b60d
push 0x1002040
push 0xe
jmp 0x100b6e3
push dword [ebp - 0x840]
mov ecx, dword [ebp - 0x82c]
call fcn.01008896
mov ecx, eax
mov dword [ebp - 0x828], ecx
cmp ecx, 0x8000000a
jne 0x100af13
mov eax, dword [0x1035014]
cmp eax, 0x1035014
je 0x100b60d
test byte [eax + 0x1c], 4
je 0x100b60d
push 0x1002040
push 0xf
jmp 0x100b6e3
test ecx, ecx
jge 0x100af3e
mov eax, dword [0x1035014]
cmp eax, 0x1035014
je 0x100b60d
test byte [eax + 0x1c], 1
je 0x100b60d
push ecx
push 0x1002040
push 0x10
jmp 0x100b3d5
cmp dword [ebp - 0x840], 0
jne 0x100afa3
mov dword [ebp - 0x828], ebx
mov eax, dword [0x1035014]
cmp eax, 0x1035014
je 0x100af71
test byte [eax + 0x1c], 4
je 0x100af71
push 0x1002040
push 0x11
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01004e8e
mov ecx, dword [ebp - 0x82c]
push 0x10029b0
call fcn.01009c73
push 0
push 0x100299c
push 0
push 0x1002920
push 0x80000002
call fcn.01012d36
call fcn.01015045
jmp 0x100b60d
mov ebx, dword [ebp - 0x82c]
push esi
push edi
mov ecx, ebx
call fcn.01006624
push esi
push edi
mov ecx, ebx
call fcn.01005f86
push esi
push edi
mov ecx, ebx
call fcn.01006265
mov ecx, ebx
call fcn.0100d787
test eax, eax
jge 0x100affa
mov ecx, dword [0x1035014]
mov esi, 0x1035014
cmp ecx, esi
je 0x100afff
test byte [ecx + 0x1c], 2
je 0x100afff
push eax
mov edi, 0x1002040
push edi
push 0x12
push dword [ecx + 0x14]
push dword [ecx + 0x10]
call fcn.01004eb4
jmp 0x100b004
mov esi, 0x1035014
mov edi, 0x1002040
mov ecx, ebx
call fcn.0100d35f
mov dword [ebp - 0x828], eax
test eax, eax
jge 0x100b03a
mov eax, dword [0x1035014]
cmp eax, esi
je 0x100b60d
test byte [eax + 0x1c], 1
je 0x100b60d
push dword [ebp - 0x828]
push edi
push 0x13
jmp 0x100b3d5
mov ecx, ebx
call fcn.0100ea2f
mov dword [ebp - 0x828], eax
test eax, eax
jge 0x100b070
mov eax, dword [0x1035014]
cmp eax, esi
je 0x100b60d
test byte [eax + 0x1c], 1
je 0x100b60d
push dword [ebp - 0x828]
push edi
push 0x14
jmp 0x100b3d5
mov ecx, ebx
call fcn.0100f579
push 1
push 1
lea eax, [ebp - 0x61c]
push eax
push 0x1002810
call fcn.01014d1d
mov dword [ebp - 0x828], eax
test eax, eax
jge 0x100b0bb
mov eax, dword [0x1035014]
cmp eax, esi
je 0x100b60d
test byte [eax + 0x1c], 1
je 0x100b60d
push dword [ebp - 0x828]
push edi
push 0x15
jmp 0x100b3d5
push 0
push 1
lea eax, [ebp - 0x61c]
push eax
push 0x10028e0
call fcn.01014d1d
mov dword [ebp - 0x828], eax
test eax, eax
jge 0x100b0ff
mov eax, dword [0x1035014]
cmp eax, esi
je 0x100b60d
test byte [eax + 0x1c], 1
je 0x100b60d
push dword [ebp - 0x828]
push edi
push 0x16
jmp 0x100b3d5
push 1
push 1
lea eax, [ebp - 0x61c]
push eax
push 0x10022ac
call fcn.01014d1d
mov dword [ebp - 0x828], eax
test eax, eax
jge 0x100b143
mov eax, dword [0x1035014]
cmp eax, esi
je 0x100b60d
test byte [eax + 0x1c], 1
je 0x100b60d
push dword [ebp - 0x828]
push edi
push 0x17
jmp 0x100b3d5
push 1
push 1
lea eax, [ebp - 0x61c]
push eax
push 0x10028a0
call fcn.01014d1d
mov dword [ebp - 0x828], eax
test eax, eax
jge 0x100b187
mov eax, dword [0x1035014]
cmp eax, esi
je 0x100b60d
test byte [eax + 0x1c], 1
je 0x100b60d
push dword [ebp - 0x828]
push edi
push 0x18
jmp 0x100b3d5
lea eax, [ebp - 0x84c]
push eax
push 0x100287c
push 0x1002610
push 0x80000002
call fcn.01012bef
test eax, eax
jne 0x100b1e2
mov eax, dword [0x1035014]
cmp eax, esi
je 0x100b1c9
test byte [eax + 0x1c], 4
je 0x100b1c9
push dword [ebp - 0x84c]
push edi
push 0x19
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01004eb4
mov eax, dword [ebp - 0x84c]
mov ecx, 0x989680
mul ecx
mov dword [ebx + 0x1d8], eax
mov dword [ebx + 0x1dc], edx
lea eax, [ebp - 0x824]
push eax
push 0x1002518
xor eax, eax
push eax
push eax
push 0x8025
push eax
call dword [sym.imp.SHELL32.dll_SHGetFolderPathAndSubDirW]
mov dword [ebp - 0x828], eax
test eax, eax
jge 0x100b22d
mov eax, dword [0x1035014]
cmp eax, esi
je 0x100b60d
test byte [eax + 0x1c], 1
je 0x100b60d
push dword [ebp - 0x828]
push edi
push 0x1a
jmp 0x100b3d5
push dword [ebp - 0x830]
movzx eax, word [ebp - 0x854]
push eax
movzx eax, word [ebp - 0x856]
push eax
movzx eax, word [ebp - 0x858]
push eax
movzx eax, word [ebp - 0x85a]
push eax
movzx eax, word [ebp - 0x85e]
push eax
movzx eax, word [ebp - 0x860]
push eax
push 0x10025c8
lea eax, [ebp - 0x824]
push eax
push 0x100283c
lea eax, [ebp - 0x414]
push 0x104
push eax
call fcn.01006a35
add esp, 0x30
mov dword [ebp - 0x828], eax
test eax, eax
jl 0x100b3e5
inc dword [ebp - 0x830]
lea eax, [ebp - 0x414]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x100b22d
mov eax, dword [0x1035014]
cmp eax, esi
je 0x100b2d1
test byte [eax + 0x1c], 4
je 0x100b2d1
lea ecx, [ebp - 0x414]
push ecx
push edi
push 0x1c
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01004ee0
push 3
lea eax, [ebp - 0x414]
push eax
push 0x10025c8
mov ecx, ebx
call fcn.0100701e
mov esi, eax
test esi, esi
jge 0x100b38a
mov eax, dword [0x1035014]
cmp eax, 0x1035014
je 0x100b31b
test byte [eax + 0x1c], 1
je 0x100b31b
push esi
push 0x10025c8
push edi
push 0x1d
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01004f4d
mov eax, dword [0x1035014]
cmp esi, 0x80071069
jne 0x100b38a
cmp eax, 0x1035014
je 0x100b33e
test byte [eax + 0x1c], 4
je 0x100b33e
push edi
push 0x1e
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01004e8e
mov ecx, ebx
call fcn.0100729b
mov esi, eax
test esi, esi
jge 0x100b36c
mov eax, dword [0x1035014]
cmp eax, 0x1035014
je 0x100b36c
test byte [eax + 0x1c], 1
je 0x100b36c
push esi
push edi
push 0x1f
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01004eb4
xor eax, eax
test esi, esi
setge al
push eax
push 0x1002488
push 0
push 0x1002090
push 0x80000002
call fcn.01012d36
push 1
lea eax, [ebp - 0x83c]
push eax
lea eax, [ebp - 0x838]
push eax
lea eax, [ebp - 0x824]
push eax
mov ecx, ebx
call fcn.01006adb
mov dword [ebp - 0x828], eax
test eax, eax
jge 0x100b407
mov eax, dword [0x1035014]
cmp eax, 0x1035014
je 0x100b60d
test byte [eax + 0x1c], 1
je 0x100b60d
push dword [ebp - 0x828]
push edi
push 0x20
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01004eb4
jmp 0x100b60d
mov eax, dword [0x1035014]
cmp eax, esi
je 0x100b60d
test byte [eax + 0x1c], 1
je 0x100b60d
push dword [ebp - 0x828]
push edi
push 0x1b
jmp 0x100b3d5
and dword [ebp - 0x830], 0
cmp dword [ebp - 0x83c], 0
jbe 0x100b5e1
mov eax, dword [0x1035014]
mov ebx, 0x1035014
mov esi, dword [ebp - 0x838]
xor edi, edi
test esi, esi
je 0x100b6ca
cmp dword [esi + 0xc], 1
je 0x100b453
test edi, edi
je 0x100b451
lea eax, [esi + 4]
push eax
lea eax, [edi + 4]
push eax
call dword [sym.imp.KERNEL32.dll_CompareFileTime]
test eax, eax
jle 0x100b453
mov edi, esi
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x100b435
test edi, edi
je 0x100b6c5
push dword [edi]
lea eax, [ebp - 0x824]
push eax
lea eax, [ebp - 0x20c]
push eax
mov dword [edi + 0xc], 1
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
test eax, eax
je 0x100b6f3
lea ecx, [ebp - 0x414]
lea eax, [ebp - 0x20c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x100b4b9
test dx, dx
je 0x100b4b5
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x100b4b9
add eax, 4
add ecx, 4
test dx, dx
jne 0x100b493
xor eax, eax
jmp 0x100b4be
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x100b5be
mov eax, dword [0x1035014]
cmp eax, ebx
je 0x100b4f1
test byte [eax + 0x1c], 4
je 0x100b4f1
lea ecx, [ebp - 0x20c]
push ecx
mov esi, 0x1002040
push esi
push 0x23
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01004ee0
jmp 0x100b4f6
mov esi, 0x1002040
mov ecx, dword [ebp - 0x82c]
push 0x10000000
lea eax, [ebp - 0x20c]
push eax
push 0x10025c8
call fcn.0100ab82
mov dword [ebp - 0x828], eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x100b58b
mov eax, dword [0x1035014]
cmp eax, ebx
je 0x100b54d
test byte [eax + 0x1c], 2
je 0x100b54d
lea ecx, [ebp - 0x20c]
push ecx
push esi
push 0x24
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01004ee0
push 4
push 0
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x100b58b
mov eax, dword [0x1035014]
cmp eax, ebx
je 0x100b590
test byte [eax + 0x1c], 2
je 0x100b590
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov eax, dword [0x1035014]
push esi
push 0x25
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01004eb4
mov eax, dword [0x1035014]
cmp dword [ebp - 0x828], 0
jge 0x100b5c3
cmp eax, ebx
je 0x100b5c3
test byte [eax + 0x1c], 1
je 0x100b5c3
push dword [ebp - 0x828]
lea ecx, [ebp - 0x20c]
push ecx
push esi
push 0x26
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01004f4d
mov eax, dword [0x1035014]
inc dword [ebp - 0x830]
mov ecx, dword [ebp - 0x830]
cmp ecx, dword [ebp - 0x83c]
jb 0x100b425
mov ebx, dword [ebp - 0x82c]
and dword [ebp - 0x828], 0
cmp dword [0x1035088], 0
je 0x100b60d
lea eax, [ebp - 0x848]
push eax
mov ecx, ebx
call fcn.0100fd7a
lea eax, [ebp - 0x848]
push eax
mov ecx, ebx
call fcn.0100fe55
mov esi, dword [ebp - 0x82c]
push 1
mov ecx, esi
call fcn.0100555e
push dword [esi + 0x1cc]
xor edi, edi
push dword [esi + 0x1c8]
push 0x10020dc
push edi
push 0x1002090
push 0x80000002
call fcn.01012fa2
test eax, eax
je 0x100b667
mov eax, dword [0x1035014]
cmp eax, 0x1035014
je 0x100b667
test byte [eax + 0x1c], 4
je 0x100b667
push 0x1002040
push 0x27
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01004e8e
cmp dword [ebp - 0x838], edi
je 0x100b682
push dword [ebp - 0x83c]
mov ecx, esi
push dword [ebp - 0x838]
call fcn.010054f8
push edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push dword [esi + 0x1d4]
call fcn.010131f2
push eax
push 0x74c
mov ecx, esi
call fcn.0100c50e
mov ecx, esi
call fcn.010111a6
mov ecx, esi
call fcn.0100c21a
mov eax, dword [ebp - 0x828]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.01011f27
leave
ret
mov eax, dword [0x1035014]
cmp eax, ebx
je 0x100b60d
test byte [eax + 0x1c], 1
je 0x100b60d
push 0x1002040
push 0x21
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01004e8e
jmp 0x100b60d
mov eax, dword [0x1035014]
cmp eax, ebx
je 0x100b60d
test byte [eax + 0x1c], 1
je 0x100b60d
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1002040
push 0x22
mov eax, dword [0x1035014]
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01004eb4
jmp 0x100b60d