Function at 0x610a32d0
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 [0x61148214], 0
mov dword [esp + 0x24], eax
mov byte [esp + 0x23], 0
je 0x610a36b0
mov dword [esp], 0x61148218
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 0x610a3b18
cmp dword [esp + 0x2a0], 0xffffffff
je 0x610a3b43
cmp byte [0x61148214], 0
jne 0x610a36c0
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 0x610a36f0
cmp byte [esp + 0x180], 0
jne 0x610a36f0
mov ecx, dword [esp + 0x2d0]
test ecx, ecx
setne al
xor edx, edx
cmp ecx, 0xf7
setne dl
test eax, edx
je 0x610a37b2
cmp ecx, 0xfc
je 0x610a37b2
lea eax, [esp + 0x2a0]
xor edx, edx
add eax, 0x2c
cmp byte [eax + 0x10], 0
je 0x610a33cc
cmp dword [eax + 4], 0xf7
je 0x610a33cc
mov edx, 1
test edx, edx
je 0x610a37b2
lea esi, [esi]
lea edi, [edi]
mov eax, dword [esp + 0x140]
cmp eax, 0xffffffff
je 0x610a3404
xor edx, edx
test al, 0x10
je 0x610a33f7
mov edx, 1
test edx, edx
jne 0x610a3d20
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 0x610a36f0
cmp byte [esp + 0x180], 0
jne 0x610a36f0
mov edx, dword [esp + 0x140]
xor eax, eax
cmp edx, 0xffffffff
je 0x610a3480
test dl, 0x10
je 0x610a3480
mov eax, 1
lea esi, [esi]
test eax, eax
je 0x610a34a8
mov eax, dword [esp + 0x2a0]
xor ecx, ecx
cmp eax, 0xffffffff
je 0x610a34a0
test al, 0x10
jne 0x610a3a8b
lea esi, [esi]
test ecx, ecx
je 0x610a3d4f
xor eax, eax
cmp edx, 0xffffffff
je 0x610a34c0
test dl, 1
je 0x610a34c0
mov eax, 1
lea esi, [esi]
test al, al
jne 0x610a3a2a
test byte [esp + 0x2c0], 1
jne 0x610a3570
mov ebx, dword [esp + 0x168]
test ebx, ebx
jne 0x610a3570
mov ecx, dword [esp + 0x170]
test ecx, ecx
setne al
xor edx, edx
cmp ecx, 0xf7
setne dl
test eax, edx
je 0x610a352c
cmp ecx, 0xfc
je 0x610a352c
lea eax, [esp + 0x140]
xor edx, edx
add eax, 0x2c
cmp byte [eax + 0x10], 0
je 0x610a3528
cmp dword [eax + 4], 0xf7
je 0x610a3528
mov edx, 1
test edx, edx
jne 0x610a3543
cmp dword [esp + 0x170], 0xfc
je 0x610a3543
test byte [esp + 0x163], 1
je 0x610a3570
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 0x610a3570
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 0x610a3900
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 0x610a35c0
test al, 0x10
jne 0x610a3a95
nop
lea esi, [esi]
test edx, edx
je 0x610a397c
cmp ebx, 0x20
je 0x610a3aa9
cmp ebx, 5
je 0x610a3cc4
cmp ebx, 0xb7
mov edx, dword [esp + 0x140]
jne 0x610a3983
cmp edx, 0xffffffff
je 0x610a3983
mov eax, dword [0x611650ec]
test byte [eax + 0x13], 2
jne 0x610a3983
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 0x610a3636
lodsb al, byte [esi]
scasb al, byte es:[edi]
je 0x610a3632
xor al, byte [eax + 0x61108b40]
cmp al, byte [edi - 1]
jne 0x610a363d
test al, al
jne 0x610a3620
mov eax, 1
jmp 0x610a363f
xor eax, eax
test eax, eax
je 0x610a397c
movsx eax, byte [esp + edx + 0x190]
cmp al, 0x5c
jne 0x610a397c
mov dword [esp], 0x57
call sub.KERNEL32.dll_SetLastError
sub esp, 4
mov edx, 0x545
mov eax, str._ext_build_netrel_src_cygwin_1.5.25_7_winsup_cygwin_syscalls.cc
call sym.__Z8seterrnoPKci_8
mov edx, dword [esp + 0x140]
xor eax, eax
cmp edx, 0xffffffff
je 0x610a368d
test dl, 1
je 0x610a368d
mov eax, 1
test al, al
je 0x610a3942
mov dword [esp + 4], edx
lea eax, [esp + 0x190]
mov dword [esp], eax
call sub.KERNEL32.dll_SetFileAttributesA
sub esp, 8
jmp 0x610a3942
mov dword [esp], 0
jmp 0x610a330d
mov dword [esp], 0x61148218
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 0x610a3373
lea esi, [esi]
movzx eax, byte [0x6110c854]
test al, 1
jne 0x610a3777
cmp byte [esp + 0x180], 0
jne 0x610a3751
test al, 1
mov ebx, dword [esp + 0x168]
jne 0x610a3890
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 0x610a3890
call sym.cygwin1.dll___errno
mov edx, dword [sym.cygwin1.dll__impure_ptr]
mov dword [edx], 0x89
mov dword [eax], 0x89
jmp 0x610a3723
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], 0x6110c854
call method.strace.prntf_unsigned_int__char_const__char_const__..._
movzx eax, byte [0x6110c854]
jmp 0x610a36fb
cmp dword [esp + 0x2d0], 0xfc
je 0x610a33e0
test byte [esp + 0x2c3], 1
jne 0x610a33e0
cmp byte [0x61148214], 0
je 0x610a3453
mov eax, dword [esp + 0x2a0]
xor edx, edx
cmp eax, 0xffffffff
je 0x610a37f5
test al, 0x10
je 0x610a37f5
mov edx, 1
test edx, edx
jne 0x610a3453
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 0x610a3444
lea eax, [esp + 0x190]
mov dword [esp], eax
call sym.cygwin1.dll__strlen
cmp eax, 4
jle 0x610a3444
lea esi, [esp + eax + 0x18c]
mov edi, 0x6113233a
cld
and eax, 0xff
lodsb al, byte [esi]
scasb al, byte es:[edi]
je 0x610a3858
xor al, byte [eax + 0x61108b40]
cmp al, byte [edi - 1]
jne 0x610a3863
test al, al
jne 0x610a3849
mov eax, 1
jmp 0x610a3865
xor eax, eax
test eax, eax
jne 0x610a3444
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 0x610a3421
mov dword [esp + 0x18], ebx
mov eax, 0x4e1
mov ebp, 0x61131a00
mov dword [esp + 0x14], eax
mov eax, str.int_rename_const_char__const_char_
mov edi, 0x40
mov dword [esp + 0x10], eax
mov eax, 0x61131a27
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
mov dword [esp], 0x6110c854
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610a3714
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 0x610a3666
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 0x610a3ae9
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 [0x6110c854], 1
jne 0x610a3a48
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 0x610a39a0
test dl, 0x10
jne 0x610a3a9f
lea esi, [esi]
lea edi, [edi]
test eax, eax
jne 0x610a3b76
mov eax, dword [0x611650ec]
test byte [eax + 0x13], 2
jne 0x610a38d2
cmp ebx, 0xb7
sete dl
cmp ebx, 0x50
sete al
or dl, al
je 0x610a3666
test byte [0x6110c854], 1
jne 0x610a3abd
xor ebx, ebx
lea eax, [esp + 0x190]
mov dword [esp], eax
call sub.KERNEL32.dll_DeleteFileA
sub esp, 4
test eax, eax
jne 0x610a3a01
call sub.KERNEL32.dll_GetLastError
cmp eax, 2
jne 0x610a3e20
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 0x610a38f9
inc ebx
cmp ebx, 1
jle 0x610a39dd
jmp 0x610a3666
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 0x610a34c8
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], 0x6110c854
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610a394f
mov ecx, 1
jmp 0x610a34a0
mov edx, 1
jmp 0x610a35c0
mov eax, 1
jmp 0x610a39a0
mov eax, dword [0x611650ec]
test byte [eax + 0x13], 2
jne 0x610a3605
jmp 0x610a35da
mov dword [esp], 0x6110c854
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 0x610a39db
cmp byte [esp + 0x23], 0
je 0x610a3942
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 0x610a3930
movzx eax, byte [0x6110c854]
test al, 1
jne 0x610a3c08
test al, 1
jne 0x610a3bc6
call sym.cygwin1.dll___errno
mov edx, dword [sym.cygwin1.dll__impure_ptr]
mov dword [edx], esi
mov dword [eax], esi
jmp 0x610a3732
movzx eax, byte [0x6110c854]
test al, 1
jne 0x610a3c91
test al, 1
jne 0x610a3c4a
call sym.cygwin1.dll___errno
mov edx, dword [sym.cygwin1.dll__impure_ptr]
mov dword [edx], 2
mov dword [eax], 2
jmp 0x610a3732
lea eax, [esp + 0x190]
mov dword [esp], eax
call sub.KERNEL32.dll_RemoveDirectoryA
sub esp, 4
test eax, eax
jne 0x610a3cd9
test byte [0x6110c854], 1
jne 0x610a3cf4
call sub.KERNEL32.dll_GetLastError
cmp eax, 5
jne 0x610a3666
mov eax, dword [0x611650ec]
test byte [eax + 0x10], 4
je 0x610a3666
mov dword [esp], 0x91
jmp 0x610a365e
mov dword [esp + 0x18], esi
mov eax, 0x4a5
mov dword [esp + 0x14], eax
mov eax, str.int_rename_const_char__const_char_
mov dword [esp + 0x10], eax
mov eax, 0x61131a27
mov dword [esp + 0xc], eax
mov eax, 0x61131a00
mov dword [esp + 8], eax
mov eax, 0x40
mov dword [esp + 4], eax
mov dword [esp], 0x6110c854
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610a3b2f
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], 0x6110c854
call method.strace.prntf_unsigned_int__char_const__char_const__..._
movzx eax, byte [0x6110c854]
mov esi, dword [esp + 0x2c8]
jmp 0x610a3b27
mov dword [esp], 0x6110c854
mov eax, 0x61131a27
mov ebx, 2
mov dword [esp + 0xc], eax
mov eax, 0x61131a00
mov ecx, 0x4ac
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 0x610a3b5a
mov dword [esp], 0x6110c854
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 [0x6110c854]
jmp 0x610a3b52
mov edx, dword [esp + 0x140]
cmp edx, 0xffffffff
jne 0x610a3983
jmp 0x610a35f6
mov dword [esp], ebp
lea eax, [esp + 0x190]
mov dword [esp + 4], eax
call sub.KERNEL32.dll_MoveFileA
sub esp, 8
jmp 0x610a38f1
mov dword [esp], 0x6110c854
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 0x610a3b9d
movzx eax, byte [0x6110c854]
test al, 1
jne 0x610a3dba
test al, 1
jne 0x610a3da6
call sym.cygwin1.dll___errno
mov edx, dword [sym.cygwin1.dll__impure_ptr]
mov dword [edx], 0x15
mov dword [eax], 0x15
jmp 0x610a3723
movzx eax, byte [0x6110c854]
test al, 1
jne 0x610a3ded
test al, 1
je 0x610a3d33
mov edx, 0x15
mov eax, 0x4e8
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
mov dword [esp], 0x6110c854
mov eax, str.int_rename_const_char__const_char_
mov dword [esp + 0x10], eax
mov eax, 0x61131a27
mov dword [esp + 0xc], eax
mov eax, 0x61131a00
mov dword [esp + 8], eax
mov eax, 0x40
mov dword [esp + 4], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x610a3d33
mov ebp, 0x15
mov edi, 0x4c4
mov dword [esp + 0x18], ebp
mov dword [esp + 0x14], edi
jmp 0x610a3d74
mov dword [esp], 0x6110c854
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 [0x6110c854]
jmp 0x610a3d2f
mov dword [esp], 0x6110c854
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 [0x6110c854]
jmp 0x610a3d5e
test byte [0x6110c854], 1
je 0x610a3666
mov dword [esp], 0x6110c854
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 0x610a3666