Function at 0x610a2cf0
Capabilities:
Check if file exists
Delete directory
Delete file
Move file
Set file attributes

Disassembly:
push ebp
xor eax, eax
push edi
push esi
push ebx
sub esp, 0x40c
mov ebp, dword [esp + 0x420]
mov dword [esp + 0x28], eax
xor eax, eax
mov ebx, dword [esp + 0x424]
cmp byte [0x611463c4], 0
mov dword [esp + 0x24], eax
mov byte [esp + 0x23], 0
je 0x610a30d0
mov dword [esp], 0x611463c8
mov ecx, 0x22
mov edx, ebp
lea eax, [esp + 0x2a0]
call method.path_conv.check_char_const__unsigned_int__suffix_info_const_
mov esi, dword [esp + 0x2c8]
test esi, esi
jne 0x610a3538
cmp dword [esp + 0x2a0], 0xffffffff
je 0x610a3563
cmp byte [0x611463c4], 0
jne 0x610a30e0
mov dword [esp], 0
mov ecx, 0x22
mov edx, ebx
lea eax, [esp + 0x140]
call method.path_conv.check_char_const__unsigned_int__suffix_info_const_
mov edi, dword [esp + 0x168]
test edi, edi
jne 0x610a3110
cmp byte [esp + 0x180], 0
jne 0x610a3110
mov ecx, dword [esp + 0x2d0]
test ecx, ecx
setne al
xor edx, edx
cmp ecx, 0xf7
setne dl
test eax, edx
je 0x610a31d2
cmp ecx, 0xfc
je 0x610a31d2
lea eax, [esp + 0x2a0]
xor edx, edx
add eax, 0x2c
cmp byte [eax + 0x10], 0
je 0x610a2dec
cmp dword [eax + 4], 0xf7
je 0x610a2dec
mov edx, 1
test edx, edx
je 0x610a31d2
lea esi, [esi]
lea edi, [edi]
mov eax, dword [esp + 0x140]
cmp eax, 0xffffffff
je 0x610a2e24
xor edx, edx
test al, 0x10
je 0x610a2e17
mov edx, 1
test edx, edx
jne 0x610a3740
mov byte [esp + 0x23], 1
mov dword [esp + 4], ebx
lea ebx, [esp + 0x30]
mov esi, 0x6b6e6c2e
mov dword [esp], ebx
call sym.cygwin1.dll__strcpy
mov dword [esp], ebx
call sym.cygwin1.dll__strlen
mov dword [esp + eax + 0x30], esi
mov ecx, 2
mov edx, ebx
mov byte [ebx + eax + 4], 0
lea eax, [esp + 0x140]
mov dword [esp], 0
call method.path_conv.check_char_const__unsigned_int__suffix_info_const_
mov eax, dword [esp + 0x168]
test eax, eax
jne 0x610a3110
cmp byte [esp + 0x180], 0
jne 0x610a3110
mov edx, dword [esp + 0x140]
xor eax, eax
cmp edx, 0xffffffff
je 0x610a2ea0
test dl, 0x10
je 0x610a2ea0
mov eax, 1
lea esi, [esi]
test eax, eax
je 0x610a2ec8
mov eax, dword [esp + 0x2a0]
xor ecx, ecx
cmp eax, 0xffffffff
je 0x610a2ec0
test al, 0x10
jne 0x610a34ab
lea esi, [esi]
test ecx, ecx
je 0x610a376f
xor eax, eax
cmp edx, 0xffffffff
je 0x610a2ee0
test dl, 1
je 0x610a2ee0
mov eax, 1
lea esi, [esi]
test al, al
jne 0x610a344a
test byte [esp + 0x2c0], 1
jne 0x610a2f90
mov ebx, dword [esp + 0x168]
test ebx, ebx
jne 0x610a2f90
mov ecx, dword [esp + 0x170]
test ecx, ecx
setne al
xor edx, edx
cmp ecx, 0xf7
setne dl
test eax, edx
je 0x610a2f4c
cmp ecx, 0xfc
je 0x610a2f4c
lea eax, [esp + 0x140]
xor edx, edx
add eax, 0x2c
cmp byte [eax + 0x10], 0
je 0x610a2f48
cmp dword [eax + 4], 0xf7
je 0x610a2f48
mov edx, 1
test edx, edx
jne 0x610a2f63
cmp dword [esp + 0x170], 0xfc
je 0x610a2f63
test byte [esp + 0x163], 1
je 0x610a2f90
mov ecx, 0x2e
lea eax, [esp + 0x190]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym.cygwin1.dll__strrchr
mov dword [esp + 0x24], eax
test eax, eax
je 0x610a2f90
mov byte [eax], 0
lea esi, [esi]
lea edi, [edi]
lea ebp, [esp + 0x2f0]
lea eax, [esp + 0x190]
mov dword [esp + 4], eax
mov dword [esp], ebp
call sub.KERNEL32.dll_MoveFileA
sub esp, 8
test eax, eax
jne 0x610a3320
mov edx, 0xffffffff
mov dword [esp + 0x28], edx
call sub.KERNEL32.dll_GetLastError
mov ebx, eax
mov eax, dword [esp + 0x2a0]
xor edx, edx
cmp eax, 0xffffffff
je 0x610a2fe0
test al, 0x10
jne 0x610a34b5
nop
lea esi, [esi]
test edx, edx
je 0x610a339c
cmp ebx, 0x20
je 0x610a34c9
cmp ebx, 5
je 0x610a36e4
cmp ebx, 0xb7
mov edx, dword [esp + 0x140]
jne 0x610a33a3
cmp edx, 0xffffffff
je 0x610a33a3
mov eax, dword [0x611630ec]
test byte [eax + 0x13], 2
jne 0x610a33a3
mov dword [esp], ebp
mov esi, ebp
lea edi, [esp + 0x190]
call sym.cygwin1.dll__strlen
mov edx, eax
mov ecx, eax
cld
and eax, 0xff
dec ecx
js 0x610a3056
lodsb al, byte [esi]
scasb al, byte es:[edi]
je 0x610a3052
xor al, byte [eax + 0x61106b3c]
cmp al, byte [edi - 1]
jne 0x610a305d
test al, al
jne 0x610a3040
mov eax, 1
jmp 0x610a305f
xor eax, eax
test eax, eax
je 0x610a339c
movsx eax, byte [esp + edx + 0x190]
cmp al, 0x5c
jne 0x610a339c
mov dword [esp], 0x57
call sub.KERNEL32.dll_SetLastError
sub esp, 4
mov edx, 0x544
mov eax, str._ext_build_netrel_src_cygwin_1.5.24_2_winsup_cygwin_syscalls.cc
call sym.__Z8seterrnoPKci_8
mov edx, dword [esp + 0x140]
xor eax, eax
cmp edx, 0xffffffff
je 0x610a30ad
test dl, 1
je 0x610a30ad
mov eax, 1
test al, al
je 0x610a3362
mov dword [esp + 4], edx
lea eax, [esp + 0x190]
mov dword [esp], eax
call sub.KERNEL32.dll_SetFileAttributesA
sub esp, 8
jmp 0x610a3362
mov dword [esp], 0
jmp 0x610a2d2d
mov dword [esp], 0x611463c8
mov ecx, 0x22
mov edx, ebx
lea eax, [esp + 0x140]
call method.path_conv.check_char_const__unsigned_int__suffix_info_const_
mov edi, dword [esp + 0x168]
test edi, edi
je 0x610a2d93
lea esi, [esi]
movzx eax, byte [0x6110a820]
test al, 1
jne 0x610a3197
cmp byte [esp + 0x180], 0
jne 0x610a3171
test al, 1
mov ebx, dword [esp + 0x168]
jne 0x610a32b0
call sym.cygwin1.dll___errno
mov edx, dword [sym.cygwin1.dll__impure_ptr]
mov dword [edx], ebx
mov dword [eax], ebx
lea eax, [esp + 0x140]
mov dword [esp], eax
call sym.path_conv::path_conv__
lea eax, [esp + 0x2a0]
mov dword [esp], eax
call sym.path_conv::path_conv__
add esp, 0x40c
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
test al, 1
mov ebx, 0x89
jne 0x610a32b0
call sym.cygwin1.dll___errno
mov edx, dword [sym.cygwin1.dll__impure_ptr]
mov dword [edx], 0x89
mov dword [eax], 0x89
jmp 0x610a3143
mov dword [esp + 0x14], ebx
mov eax, str._1__rename___s___s_
mov dword [esp + 0xc], eax
mov eax, str.int_rename_const_char__const_char_
mov dword [esp + 8], eax
mov eax, 0x10
mov dword [esp + 4], eax
mov dword [esp + 0x10], ebp
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
movzx eax, byte [0x6110a820]
jmp 0x610a311b
cmp dword [esp + 0x2d0], 0xfc
je 0x610a2e00
test byte [esp + 0x2c3], 1
jne 0x610a2e00
cmp byte [0x611463c4], 0
je 0x610a2e73
mov eax, dword [esp + 0x2a0]
xor edx, edx
cmp eax, 0xffffffff
je 0x610a3215
test al, 0x10
je 0x610a3215
mov edx, 1
test edx, edx
jne 0x610a2e73
lea eax, [esp + 0x2f0]
lea edx, [esp + 0x2c]
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.KERNEL32.dll_GetBinaryTypeA
sub esp, 8
test eax, eax
je 0x610a2e64
lea eax, [esp + 0x190]
mov dword [esp], eax
call sym.cygwin1.dll__strlen
cmp eax, 4
jle 0x610a2e64
lea esi, [esp + eax + 0x18c]
mov edi, 0x6113023a
cld
and eax, 0xff
lodsb al, byte [esi]
scasb al, byte es:[edi]
je 0x610a3278
xor al, byte [eax + 0x61106b3c]
cmp al, byte [edi - 1]
jne 0x610a3283
test al, al
jne 0x610a3269
mov eax, 1
jmp 0x610a3285
xor eax, eax
test eax, eax
jne 0x610a2e64
mov dword [esp + 4], ebx
lea ebx, [esp + 0x30]
mov esi, 0x6578652e
mov dword [esp], ebx
call sym.cygwin1.dll__strcpy
mov dword [esp], ebx
call sym.cygwin1.dll__strlen
jmp 0x610a2e41
mov dword [esp + 0x18], ebx
mov eax, 0x4e0
mov ebp, 0x6112f900
mov dword [esp + 0x14], eax
mov eax, str.int_rename_const_char__const_char_
mov edi, 0x40
mov dword [esp + 0x10], eax
mov eax, 0x6112f927
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610a3134
mov dword [esp], ebp
mov edx, 1
lea eax, [esp + 0x190]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call sub.KERNEL32.dll_MoveFileExA
sub esp, 0xc
test eax, eax
je 0x610a3086
xor ebx, ebx
mov dword [esp + 0x28], ebx
nop
mov eax, dword [esp + 0x2a0]
mov dword [esp + 4], eax
lea eax, [esp + 0x190]
mov dword [esp], eax
call sub.KERNEL32.dll_SetFileAttributesA
sub esp, 8
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x610a3509
mov eax, dword [esp + 0x24]
mov byte [eax], 0x2e
lea eax, [esp + 0x190]
mov dword [esp], eax
call sub.KERNEL32.dll_DeleteFileA
sub esp, 4
test byte [0x6110a820], 1
jne 0x610a3468
lea eax, [esp + 0x140]
mov dword [esp], eax
call sym.path_conv::path_conv__
lea eax, [esp + 0x2a0]
mov dword [esp], eax
call sym.path_conv::path_conv__
mov eax, dword [esp + 0x28]
add esp, 0x40c
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x140]
xor eax, eax
cmp edx, 0xffffffff
je 0x610a33c0
test dl, 0x10
jne 0x610a34bf
lea esi, [esi]
lea edi, [edi]
test eax, eax
jne 0x610a3596
mov eax, dword [0x611630ec]
test byte [eax + 0x13], 2
jne 0x610a32f2
cmp ebx, 0xb7
sete dl
cmp ebx, 0x50
sete al
or dl, al
je 0x610a3086
test byte [0x6110a820], 1
jne 0x610a34dd
xor ebx, ebx
lea eax, [esp + 0x190]
mov dword [esp], eax
call sub.KERNEL32.dll_DeleteFileA
sub esp, 4
test eax, eax
jne 0x610a3421
call sub.KERNEL32.dll_GetLastError
cmp eax, 2
jne 0x610a3840
mov dword [esp], ebp
lea eax, [esp + 0x190]
mov dword [esp + 4], eax
call sub.KERNEL32.dll_MoveFileA
sub esp, 8
test eax, eax
jne 0x610a3319
inc ebx
cmp ebx, 1
jle 0x610a33fd
jmp 0x610a3086
and edx, 0xfffffffe
lea eax, [esp + 0x190]
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.KERNEL32.dll_SetFileAttributesA
sub esp, 8
jmp 0x610a2ee8
mov dword [esp + 0x14], ebp
lea eax, [esp + 0x190]
mov esi, str._d__rename___s___s_
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
mov ebx, str.int_rename_const_char__const_char_
mov dword [esp + 0xc], esi
mov ecx, 0x10
mov dword [esp + 8], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 4], ecx
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610a336f
mov ecx, 1
jmp 0x610a2ec0
mov edx, 1
jmp 0x610a2fe0
mov eax, 1
jmp 0x610a33c0
mov eax, dword [0x611630ec]
test byte [eax + 0x13], 2
jne 0x610a3025
jmp 0x610a2ffa
mov dword [esp], 0x6110a820
mov eax, str.try_win95_hack
mov dword [esp + 0xc], eax
mov eax, str.int_rename_const_char__const_char_
mov dword [esp + 8], eax
mov eax, 0x10
mov dword [esp + 4], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610a33fb
cmp byte [esp + 0x23], 0
je 0x610a3362
lea eax, [esp + 0x190]
mov edi, 0x2e
mov dword [esp + 4], edi
mov dword [esp], eax
call sym.cygwin1.dll__strrchr
mov dword [esp + 0x24], eax
mov byte [eax], 0
jmp 0x610a3350
movzx eax, byte [0x6110a820]
test al, 1
jne 0x610a3628
test al, 1
jne 0x610a35e6
call sym.cygwin1.dll___errno
mov edx, dword [sym.cygwin1.dll__impure_ptr]
mov dword [edx], esi
mov dword [eax], esi
jmp 0x610a3152
movzx eax, byte [0x6110a820]
test al, 1
jne 0x610a36b1
test al, 1
jne 0x610a366a
call sym.cygwin1.dll___errno
mov edx, dword [sym.cygwin1.dll__impure_ptr]
mov dword [edx], 2
mov dword [eax], 2
jmp 0x610a3152
lea eax, [esp + 0x190]
mov dword [esp], eax
call sub.KERNEL32.dll_RemoveDirectoryA
sub esp, 4
test eax, eax
jne 0x610a36f9
test byte [0x6110a820], 1
jne 0x610a3714
call sub.KERNEL32.dll_GetLastError
cmp eax, 5
jne 0x610a3086
mov eax, dword [0x611630ec]
test byte [eax + 0x10], 4
je 0x610a3086
mov dword [esp], 0x91
jmp 0x610a307e
mov dword [esp + 0x18], esi
mov eax, 0x4a4
mov dword [esp + 0x14], eax
mov eax, str.int_rename_const_char__const_char_
mov dword [esp + 0x10], eax
mov eax, 0x6112f927
mov dword [esp + 0xc], eax
mov eax, 0x6112f900
mov dword [esp + 8], eax
mov eax, 0x40
mov dword [esp + 4], eax
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610a354f
mov dword [esp + 0x14], ebx
mov eax, 0x10
mov ecx, str._1__rename___s___s_
mov dword [esp + 4], eax
mov edx, str.int_rename_const_char__const_char_
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp], 0x6110a820
call method.strace.prntf_unsigned_int__char_const__char_const__..._
movzx eax, byte [0x6110a820]
mov esi, dword [esp + 0x2c8]
jmp 0x610a3547
mov dword [esp], 0x6110a820
mov eax, 0x6112f927
mov ebx, 2
mov dword [esp + 0xc], eax
mov eax, 0x6112f900
mov ecx, 0x4ab
mov dword [esp + 8], eax
mov edx, str.int_rename_const_char__const_char_
mov eax, 0x40
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 4], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610a357a
mov dword [esp], 0x6110a820
mov ebp, str.file_to_move_doesnt_exist
mov edi, str.int_rename_const_char__const_char_
mov dword [esp + 0xc], ebp
mov esi, 0x10
mov dword [esp + 8], edi
mov dword [esp + 4], esi
call method.strace.prntf_unsigned_int__char_const__char_const__..._
movzx eax, byte [0x6110a820]
jmp 0x610a3572
mov edx, dword [esp + 0x140]
cmp edx, 0xffffffff
jne 0x610a33a3
jmp 0x610a3016
mov dword [esp], ebp
lea eax, [esp + 0x190]
mov dword [esp + 4], eax
call sub.KERNEL32.dll_MoveFileA
sub esp, 8
jmp 0x610a3311
mov dword [esp], 0x6110a820
mov eax, str.Cant_remove_target_directory
mov edi, str.int_rename_const_char__const_char_
mov dword [esp + 0xc], eax
mov esi, 0x10
mov dword [esp + 8], edi
mov dword [esp + 4], esi
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610a35bd
movzx eax, byte [0x6110a820]
test al, 1
jne 0x610a37da
test al, 1
jne 0x610a37c6
call sym.cygwin1.dll___errno
mov edx, dword [sym.cygwin1.dll__impure_ptr]
mov dword [edx], 0x15
mov dword [eax], 0x15
jmp 0x610a3143
movzx eax, byte [0x6110a820]
test al, 1
jne 0x610a380d
test al, 1
je 0x610a3753
mov edx, 0x15
mov eax, 0x4e7
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
mov dword [esp], 0x6110a820
mov eax, str.int_rename_const_char__const_char_
mov dword [esp + 0x10], eax
mov eax, 0x6112f927
mov dword [esp + 0xc], eax
mov eax, 0x6112f900
mov dword [esp + 8], eax
mov eax, 0x40
mov dword [esp + 4], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610a3753
mov ebp, 0x15
mov edi, 0x4c3
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], edi
jmp 0x610a3794
mov dword [esp], 0x6110a820
mov eax, str.newpath_is_directory__but_oldpath_is_not
mov dword [esp + 0xc], eax
mov eax, str.int_rename_const_char__const_char_
mov dword [esp + 8], eax
mov eax, 0x10
mov dword [esp + 4], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
movzx eax, byte [0x6110a820]
jmp 0x610a374f
mov dword [esp], 0x6110a820
mov ecx, 0x10
mov esi, str.newpath_is_directory__but_oldpath_is_not
mov dword [esp + 0xc], esi
mov ebx, str.int_rename_const_char__const_char_
mov dword [esp + 8], ebx
mov dword [esp + 4], ecx
call method.strace.prntf_unsigned_int__char_const__char_const__..._
movzx eax, byte [0x6110a820]
jmp 0x610a377e
test byte [0x6110a820], 1
je 0x610a3086
mov dword [esp], 0x6110a820
lea eax, [esp + 0x190]
mov dword [esp + 0x10], eax
mov eax, str.deleting__s_to_be_paranoid
mov dword [esp + 0xc], eax
mov eax, str.int_rename_const_char__const_char_
mov dword [esp + 8], eax
mov eax, 0x10
mov dword [esp + 4], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610a3086