Function at 0x1053f47
Capabilities:
Check if file exists
Copy file
Delete file
Get common file path
Get file attributes
Move file
Set file attributes

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x74c
mov eax, dword [0x1099a38]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x724], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x730], eax
mov eax, dword [ebp + 0x1c]
push ebx
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0x740], eax
xor eax, eax
cmp dword [0x109a034], eax
push esi
push edi
mov dword [ebp - 0x744], ebx
mov dword [ebp - 0x72c], eax
jne 0x1053f96
mov dword [0x10999a0], eax
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1053f9b
sub eax, edx
mov edi, 0x104
cmp eax, edi
jae 0x10548df
mov eax, dword [ebp - 0x724]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1053fba
sub eax, edx
cmp eax, edi
jae 0x10548df
lea edx, [ebp - 0x310]
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x1053fd5
lea eax, [ebp - 0x310]
push 0x5c
push eax
call dword [sym.imp.msvcrt.dll_strrchr]
xor esi, esi
cmp eax, esi
pop ecx
pop ecx
je 0x1053ffa
mov byte [eax + 1], 0
lea eax, [ebp - 0x108]
push eax
push esi
push 0x100e230
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
push 0x208
lea eax, [ebp - 0x720]
push eax
push 0xffffffffffffffff
push ebx
push esi
push esi
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, dword [ebp - 0x724]
lea eax, [ebp - 0x20c]
sub eax, ecx
mov dl, byte [ecx]
mov byte [ecx + eax], dl
inc ecx
test dl, dl
jne 0x1054039
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.msvcrt.dll__mbslwr]
test byte [ebp + 0x13], 4
pop ecx
jne 0x10541ac
cmp dword [0x109a030], 0
mov esi, dword [sym.imp.msvcrt.dll_strstr]
je 0x1054127
push dword [ebp - 0x724]
call dword [sym.imp.msvcrt.dll__strdup]
push eax
call dword [sym.imp.msvcrt.dll__mbsupr]
test eax, eax
pop ecx
pop ecx
mov dword [ebp - 0x728], eax
je 0x105411d
push 0x101a074
push eax
call esi
test eax, eax
pop ecx
pop ecx
jne 0x10540d8
push 0x101a068
push dword [ebp - 0x728]
call esi
test eax, eax
pop ecx
pop ecx
jne 0x10540d8
push 0x101a05c
push dword [ebp - 0x728]
call esi
test eax, eax
pop ecx
pop ecx
jne 0x10540d8
push 0x101a050
push dword [ebp - 0x728]
call esi
test eax, eax
pop ecx
pop ecx
je 0x1054127
cmp dword [0x109abc4], 0
jne 0x10548c7
lea eax, [ebp - 0x74c]
push eax
push ebx
call fcn.0107c2b8
test eax, eax
je 0x1054127
cmp dword [ebp - 0x74c], 0x5650001
jne 0x1054127
cmp dword [ebp - 0x748], 0x40000
jne 0x1054127
mov dword [0x109abc4], 1
jmp 0x10548c7
push 0x101a020
call fcn.01071aad
push 0x101a018
push dword [ebp - 0x724]
call esi
test eax, eax
pop ecx
pop ecx
jne 0x105414d
push 0x100ef10
push dword [ebp - 0x724]
call esi
test eax, eax
pop ecx
pop ecx
je 0x1054160
push 0x10bd1e0
push ebx
call fcn.0107c47f
test eax, eax
jne 0x10548c7
push ebx
call fcn.01030638
test eax, eax
je 0x10541ac
push ebx
call fcn.010427e5
test eax, eax
je 0x10541ac
push dword [ebp - 0x724]
call fcn.010427e5
test eax, eax
jne 0x10541ac
push dword [0x109ab70]
push dword [ebp - 0x730]
push ebx
push dword [ebp - 0x724]
call fcn.010529d5
sub eax, 0
je 0x10548d5
dec eax
dec eax
je 0x10548c7
and dword [ebp - 0x72c], 0
push 0xf
pop eax
lea ecx, [ebp - 0x72c]
push ecx
push eax
push ebx
mov dword [ebp - 0x73c], eax
call fcn.01074f69
test eax, eax
jne 0x10541e5
push 7
pop eax
lea ecx, [ebp - 0x72c]
push ecx
push eax
push ebx
mov dword [ebp - 0x73c], eax
call fcn.01074f69
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
mov dword [ebp - 0x728], eax
jne 0x1054201
mov dword [ebp - 0x728], 0x80
push 0x100ef10
push ebx
call fcn.01070f95
mov esi, dword [sym.imp.msvcrt.dll__stricmp]
push eax
call esi
test eax, eax
pop ecx
pop ecx
je 0x10547fb
push 0x101a008
push ebx
call fcn.01070f95
push eax
call esi
test eax, eax
pop ecx
pop ecx
je 0x10547fb
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0x724]
call fcn.0103a535
test eax, eax
je 0x1054263
lea eax, [ebp - 0x108]
push eax
call fcn.0107167f
test eax, eax
jne 0x10542b9
push dword [0x109ab70]
lea eax, [ebp - 0x20c]
push edi
push eax
push 0x800
call esi
push eax
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0x724]
push 0x10bf7c0
push dword [ebp - 0x730]
call fcn.010711ff
sub eax, 0
je 0x10548d5
dec eax
dec eax
je 0x105488a
dec eax
dec eax
jne 0x105423d
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x724], eax
jmp 0x105423d
cmp dword [ebp - 0x72c], 0
je 0x10542ee
push dword [ebp - 0x72c]
lea eax, [ebp - 0x108]
push dword [ebp - 0x73c]
push eax
call dword [sym.imp.ADVAPI32.dll_SetFileSecurityA]
test eax, eax
jne 0x10542ee
call esi
push eax
push 0x1019fd8
call fcn.01071ac0
pop ecx
pop ecx
push dword [ebp - 0x728]
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
jne 0x1054314
call esi
push eax
push 0x1019fa4
call fcn.01071ac0
pop ecx
pop ecx
cmp dword [0x10999a0], 0
je 0x105456d
cmp dword [ebp + 0x20], 0
je 0x1054456
push dword [ebp - 0x740]
call fcn.010426c1
push eax
push ebx
lea eax, [ebp - 0x108]
push eax
call fcn.01070f95
push eax
call fcn.0103513f
cmp eax, 0xc0000003
je 0x1054444
test eax, eax
je 0x105436a
push eax
push 0x1019f68
call fcn.01071ac0
pop ecx
jmp 0x1054455
push 3
push dword [ebp - 0x740]
call fcn.010427be
push 2
push dword [ebp - 0x740]
call fcn.010427be
cmp dword [ebp - 0x72c], 0
je 0x10543b7
push dword [ebp - 0x72c]
push dword [ebp - 0x73c]
push ebx
call dword [sym.imp.ADVAPI32.dll_SetFileSecurityA]
test eax, eax
jne 0x10543b7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1019fd8
call fcn.01071ac0
pop ecx
pop ecx
push dword [ebp - 0x728]
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
jne 0x10543db
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1019fa4
call fcn.01071ac0
pop ecx
pop ecx
push edi
mov esi, 0x1116960
push esi
push 0xf062
push 0
mov byte [0x1116960], 0
mov byte [0x10f4480], 0
call fcn.010312a2
push ebx
push esi
push 0x100ccc8
mov esi, 0x10f4480
push esi
call dword [sym.imp.msvcrt.dll_sprintf]
add esp, 0x10
push esi
call fcn.01071aad
test byte [ebp + 0x10], 1
je 0x10548c7
push 0x80
push dword [ebp - 0x724]
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push dword [ebp - 0x724]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x10548c7
push 0x1019f20
call fcn.01071ac0
and dword [0x10999a0], 0
pop ecx
cmp dword [0x10999a0], 0
je 0x105456d
cmp dword [ebp + 0x20], 0
je 0x105456d
push 0
lea eax, [ebp - 0x108]
push eax
call fcn.01034f31
lea eax, [ebp - 0x108]
push eax
push 0
push 0x100e230
lea eax, [ebp - 0x310]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0x724]
call fcn.0103a535
test eax, eax
je 0x10544bc
lea eax, [ebp - 0x108]
push eax
call fcn.0107167f
test eax, eax
jne 0x1054512
push dword [0x109ab70]
lea eax, [ebp - 0x20c]
push edi
push eax
push 0x800
call esi
push eax
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0x724]
push 0x10bf7c0
push dword [ebp - 0x730]
call fcn.010711ff
sub eax, 0
je 0x10548d5
dec eax
dec eax
je 0x105488a
dec eax
dec eax
jne 0x1054496
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x724], eax
jmp 0x1054496
cmp dword [ebp - 0x72c], 0
je 0x1054547
push dword [ebp - 0x72c]
lea eax, [ebp - 0x108]
push dword [ebp - 0x73c]
push eax
call dword [sym.imp.ADVAPI32.dll_SetFileSecurityA]
test eax, eax
jne 0x1054547
call esi
push eax
push 0x1019fd8
call fcn.01071ac0
pop ecx
pop ecx
push dword [ebp - 0x728]
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
jne 0x105456d
call esi
push eax
push 0x1019fa4
call fcn.01071ac0
pop ecx
pop ecx
and dword [ebp - 0x734], 0
and dword [ebp - 0x738], 0
cmp dword [ebp - 0x738], 5
jge 0x10545f7
push ebx
call fcn.01077693
push dword [0x10bd834]
push ebx
call fcn.0107c243
test eax, eax
jne 0x10545b0
mov eax, dword [ebp - 0x738]
inc eax
push eax
push ebx
push 0x1019ee0
call fcn.01071ac0
add esp, 0xc
push ebx
call fcn.01077693
push 1
push ebx
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
mov dword [ebp - 0x734], eax
jne 0x10545e8
call esi
push eax
push ebx
lea eax, [ebp - 0x108]
push eax
push 0x1019eb4
call fcn.01071ac0
add esp, 0x10
inc dword [ebp - 0x738]
cmp dword [ebp - 0x734], 0
je 0x105457b
cmp dword [ebp - 0x734], 0
jne 0x1054377
push ebx
call fcn.01077693
push 0
push ebx
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov esi, eax
test esi, esi
jne 0x105463e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ebx
lea eax, [ebp - 0x108]
push eax
push 0x1019e78
call fcn.01071ac0
add esp, 0x10
jmp 0x105464f
push 4
push 0
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
test esi, esi
jne 0x1054377
mov esi, 0x1106960
push dword [0x10bd834]
push ebx
call fcn.0107c243
test eax, eax
jne 0x105475d
cmp dword [0x109ab70], eax
jne 0x10548d5
push edi
push 0x10bd600
push 0xf011
push eax
mov byte [0x10bd600], al
mov byte [0x1106960], al
call fcn.010312a2
push 0xfffa
push esi
push 0xf012
push 0
call fcn.010312a2
mov eax, esi
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x10546ae
sub eax, ecx
mov ecx, eax
mov eax, ebx
lea edx, [eax + 1]
mov bl, byte [eax]
inc eax
test bl, bl
jne 0x10546be
sub eax, edx
lea eax, [eax + ecx + 1]
push eax
call dword [sym.imp.msvcrt.dll_malloc]
mov ebx, eax
test ebx, ebx
pop ecx
je 0x105474c
push dword [ebp - 0x744]
push esi
push ebx
call dword [sym.imp.msvcrt.dll_sprintf]
add esp, 0xc
push 0x10015
push 0x10bd600
push ebx
push dword [ebp - 0x730]
call fcn.0107473f
cmp eax, 2
mov dword [ebp - 0x734], eax
jne 0x1054725
push dword [0x109ab70]
push 0x10bd828
push dword [ebp - 0x730]
call fcn.01039763
test eax, eax
je 0x10546ea
push ebx
call dword [sym.imp.msvcrt.dll_free]
mov eax, dword [ebp - 0x734]
dec eax
dec eax
pop ecx
je 0x10548d5
mov ebx, dword [ebp - 0x744]
push ebx
call fcn.01077693
jmp 0x105465c
push 0x1019e48
call fcn.01071aad
push 8
jmp 0x10548da
push ebx
call fcn.01077693
push 1
push ebx
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExA]
test eax, eax
jne 0x1054377
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
push eax
push ebx
lea eax, [ebp - 0x108]
push eax
push 0x1019eb4
call fcn.01071ac0
add esp, 0x10
push dword [0x109ab70]
lea eax, [ebp - 0x20c]
push edi
push eax
push 0x800
call esi
push eax
push ebx
lea eax, [ebp - 0x108]
push eax
push 0x10bf7c0
push dword [ebp - 0x730]
call fcn.010711ff
sub eax, 0
je 0x10548d5
dec eax
dec eax
je 0x10547e9
dec eax
dec eax
jne 0x105475d
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x724], eax
jmp 0x105475d
push ebx
push 0x1019e1c
call fcn.01071ac0
pop ecx
pop ecx
jmp 0x10548c7
mov esi, dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 0x80
push ebx
call esi
push ebx
push dword [ebp - 0x724]
call fcn.010784b6
test eax, eax
je 0x1054831
push ebx
call fcn.01071356
test eax, eax
je 0x1054831
push ebx
call fcn.0107167f
test eax, eax
jne 0x1054377
push dword [0x109ab70]
lea eax, [ebp - 0x20c]
push edi
push eax
push 0x800
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push ebx
push dword [ebp - 0x724]
push 0x10bf7c0
push dword [ebp - 0x730]
call fcn.010711ff
sub eax, 0
je 0x10548cc
dec eax
dec eax
je 0x105487d
dec eax
dec eax
jne 0x1054809
lea eax, [ebp - 0x20c]
mov dword [ebp - 0x724], eax
jmp 0x1054809
push dword [ebp - 0x728]
push ebx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push edi
mov esi, 0x1116960
push esi
push 0xf05b
push 0
mov byte [0x1116960], 0
mov byte [0x10f4480], 0
call fcn.010312a2
push ebx
push esi
mov esi, 0x10f4480
push 0x100ccc8
push esi
call dword [sym.imp.msvcrt.dll_sprintf]
add esp, 0x10
push esi
call fcn.01071aad
xor edi, edi
inc edi
jmp 0x10548e1
push dword [ebp - 0x728]
push ebx
call esi
push 0x4c7
call fcn.01037f35
xor edi, edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push 0
lea eax, [ebp - 0x108]
push eax
call fcn.01034f31
cmp dword [ebp - 0x72c], 0
je 0x105490d
push dword [ebp - 0x72c]
call dword [sym.imp.msvcrt.dll_free]
pop ecx
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
pop ebx
call fcn.0106bc50
leave
ret 0x1c