Function at 0x6106bad0
Capabilities:
Get common file path
Set current directory

Disassembly:
push ebp
mov edx, 0xffffffff
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x26c
mov eax, dword [ebp + 0xc]
movzx ebx, byte [ebp + 0x14]
mov dword [ebp - 0x22c], edx
mov esi, dword [ebp + 8]
test eax, eax
mov edi, dword [ebp + 0x10]
je 0x6106bb90
mov edx, 0xffffffff
mov eax, 0x61109150
call method.muto.acquire_unsigned_long_
test bl, bl
jne 0x6106bc40
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx]
test byte [eax + str.______________], 3
je 0x6106bc70
cmp byte [edx + 1], 0x3a
je 0x6106bb7c
mov dword [esp], edx
call sym.cygwin1.dll__strlen
lea edx, [eax + 1]
mov eax, dword [esi + 4]
call sym._crealloc_8
mov dword [esi + 4], eax
mov ebx, dword [ebp + 0xc]
mov dword [esp + 4], ebx
mov eax, dword [esi + 4]
mov dword [esp], eax
call sym.cygwin1.dll__strcpy
mov edx, dword [esi + 4]
movzx eax, byte [edx + 1]
cmp al, 0x3a
jne 0x6106bca7
lea esi, [esi]
lea edi, [edi]
mov dword [esi + 0xc], 2
jmp 0x6106bcc0
mov eax, dword [ebp + 0xc]
cmp byte [eax + 2], 0x5c
je 0x6106bc70
lea esi, [esi]
mov eax, dword [esi + 4]
mov edx, 0x56
call sym._crealloc_8
mov dword [esi + 4], eax
mov dword [esp + 4], eax
mov dword [esp], 0x56
call sub.KERNEL32.dll_GetCurrentDirectoryA
sub esp, 8
cmp eax, 0x56
jb 0x6106bbe7
mov edi, 1
mov ebx, eax
mov eax, dword [esi + 4]
mov edx, ebx
call sym._crealloc_8
mov dword [esi + 4], eax
mov dword [esp + 4], eax
mov dword [esp], ebx
call sub.KERNEL32.dll_GetCurrentDirectoryA
sub esp, 8
cmp eax, ebx
jb 0x6106bbe7
inc edi
mov ebx, eax
cmp edi, 1
jle 0x6106bbbf
test eax, eax
je 0x6106bd88
mov edx, dword [esi + 4]
xor edi, edi
movzx eax, byte [edx + 1]
cmp al, 0x3a
je 0x6106bb70
cmp al, 0x5c
je 0x6106bd24
mov dword [esi + 0xc], 0
mov dword [esp + 4], edx
xor eax, eax
lea ebx, [ebp - 0x228]
mov dword [esp + 0xc], eax
mov eax, dword [0x61109534]
mov edi, ebx
mov dword [esp + 8], ebx
add eax, 0x6600
mov dword [esp], eax
call method.mount_info.conv_to_posix_path_char_const__char__int_
jmp 0x6106bcc8
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
call sub.KERNEL32.dll_SetCurrentDirectoryA
sub esp, 4
test eax, eax
je 0x6106bdae
mov edx, dword [ebp + 0xc]
movsx eax, byte [edx]
test byte [eax + str.______________], 3
je 0x6106bc70
cmp byte [edx + 1], 0x3a
je 0x6106bb7c
nop
mov ebx, dword [ebp + 0xc]
mov dword [esp], ebx
call sym.cygwin1.dll__strlen
lea edx, [eax + 1]
mov eax, dword [esi + 4]
call sym._crealloc_8
mov dword [esi + 4], eax
mov dword [esp + 4], ebx
mov eax, dword [esi + 4]
mov dword [esp], eax
call sym.cygwin1.dll__strcpy
mov edx, dword [esi + 4]
movzx eax, byte [edx + 1]
cmp al, 0x3a
je 0x6106bb70
cmp al, 0x5c
je 0x6106bd24
mov dword [esi + 0xc], 0
lea esi, [esi]
lea edi, [edi]
test edi, edi
je 0x6106bc0f
mov dword [esp], edi
call sym.cygwin1.dll__strlen
lea edx, [eax + 1]
mov eax, dword [esi]
call sym._crealloc_8
mov dword [esi], eax
mov dword [esp + 4], edi
mov dword [esp], eax
call sym.cygwin1.dll__strcpy
mov eax, dword [esi + 4]
xor edx, edx
mov dword [esp], eax
xor eax, eax
call sym.__Z14hash_path_nameyPKc_12
mov dword [esi + 8], eax
xor eax, eax
sub esp, 4
mov dword [ebp - 0x22c], eax
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x6106bd16
mov eax, 0x61109150
call method.muto.release__
mov eax, dword [ebp - 0x22c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea ebx, [edx + 2]
mov ecx, 0x5c
mov eax, ecx
mov dword [ebp - 0x23c], ebx
mov ah, al
mov al, byte [ebx]
cmp al, ah
je 0x6106bd42
inc ebx
test al, al
jne 0x6106bd36
dec ebx
mov eax, ebx
mov dword [ebp - 0x24c], eax
cmp byte [eax], 0
je 0x6106bd74
inc eax
mov dword [ebp - 0x23c], eax
mov ebx, dword [ebp - 0x23c]
mov eax, ecx
mov ah, al
mov al, byte [ebx]
cmp al, ah
je 0x6106bd6c
inc ebx
test al, al
jne 0x6106bd60
dec ebx
mov eax, ebx
mov dword [ebp - 0x24c], eax
sub dword [ebp - 0x24c], edx
mov eax, dword [ebp - 0x24c]
mov dword [esi + 0xc], eax
jmp 0x6106bcc0
mov edx, 0xfb7
mov eax, str._ext_build_netrel_src_cygwin_1.5.25_7_winsup_cygwin_path.cc
call sym.__Z8seterrnoPKci_8
test byte [0x6110c854], 1
jne 0x6106bdca
lea edx, [ebp - 0x228]
mov dword [ebp + 0xc], edx
jmp 0x6106bd05
call sub.KERNEL32.dll_GetLastError
dec eax
je 0x6106bdf3
mov edx, 0xfa6
mov eax, str._ext_build_netrel_src_cygwin_1.5.25_7_winsup_cygwin_path.cc
call sym.__Z8seterrnoPKci_8
jmp 0x6106bd05
mov dword [esp], 0x6110c854
mov ecx, str.GetCurrentDirectory___E
mov edx, str.int_cwdstuff::set_const_char__const_char__bool_
mov dword [esp + 0xc], ecx
mov eax, 0x40
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x6106bda0
test byte [0x6110c854], 1
jne 0x6106be18
call sym.cygwin1.dll___errno
mov edx, dword [sym.cygwin1.dll__impure_ptr]
mov dword [edx], 2
mov dword [eax], 2
jmp 0x6106bd05
mov dword [esp], 0x6110c854
mov eax, 2
mov edi, 0x611299d7
mov dword [esp + 0x18], eax
mov eax, 0xfa4
mov esi, 0x611299b0
mov dword [esp + 0x14], eax
mov ebx, 0x40
mov eax, str.int_cwdstuff::set_const_char__const_char__bool_
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
mov dword [esp + 8], esi
mov dword [esp + 4], ebx
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x6106bdfc