Function at 0x548f70
Capabilities:
Check if file exists
Get file attributes

Disassembly:
sub esp, 0xb8
mov eax, dword [0x610304]
xor eax, esp
mov dword [esp + 0xb4], eax
push ebx
push esi
push edi
mov edi, dword [esp + 0xc8]
xor ebx, ebx
cmp dword [edi + 0x18], 8
mov dword [esp + 0xc], ebx
jb 0x548f9f
mov esi, dword [edi + 4]
jmp 0x548fa2
lea esi, [edi + 4]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x54903d
test al, 0x10
jne 0x549183
call fcn.005416d0
cmp eax, 1
jg 0x549015
push 1
push 0x29e
push str.._file_util_win.cc
lea ecx, [esp + 0x1c]
mov ebx, 2
call fcn.005420d0
push str.conflicts_with_existing_file.
push 0x5c5b4c
push esi
add eax, 4
push str.CreateDirectory_
push eax
call fcn.004701f0
add esp, 8
push eax
call fcn.00541990
add esp, 8
push eax
call fcn.004701f0
add esp, 8
push eax
call fcn.004701f0
add esp, 8
test bl, 2
je 0x549023
lea ecx, [esp + 0x10]
call fcn.00542670
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [esp + 0xb4]
xor ecx, esp
call fcn.00584870
add esp, 0xb8
ret
lea eax, [esp + 0xa4]
push eax
mov ecx, edi
call fcn.0054be10
lea ecx, [esp + 0xa4]
push edi
push ecx
call dword [sym.imp.MSVCP80.dll_bool___cdecl_std::operator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
add esp, 8
test al, al
je 0x549088
lea ecx, [esp + 0xa4]
call sub.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [esp + 0xb4]
xor ecx, esp
call fcn.00584870
add esp, 0xb8
ret
lea edx, [esp + 0xa4]
push edx
call fcn.00548f70
add esp, 4
test al, al
je 0x549062
push 0
push esi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x549177
push ebp
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
cmp ebp, 0xb7
jne 0x5490f2
push edi
call fcn.005478c0
add esp, 4
test al, al
je 0x5490f2
lea ecx, [esp + 0xa8]
call sub.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_
mov al, 1
pop ebp
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xb4]
xor ecx, esp
call fcn.00584870
add esp, 0xb8
ret
call fcn.005416d0
cmp eax, 1
jg 0x549156
push 1
push 0x2ba
push str.._file_util_win.cc
lea ecx, [esp + 0x20]
mov ebx, 8
call fcn.005420d0
push 0x5c5b34
push ebp
push str.__last_error_is
push esi
add eax, 4
push str.Failed_to_create_directory
push eax
call fcn.004701f0
add esp, 8
push eax
call fcn.00541990
add esp, 8
push eax
call fcn.004701f0
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___unsigned_long_int_]
push eax
call fcn.004701f0
add esp, 8
test bl, 8
je 0x549164
lea ecx, [esp + 0x14]
call fcn.00542670
lea ecx, [esp + 0xa8]
call sub.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_
xor al, al
jmp 0x5490d9
lea ecx, [esp + 0xa4]
call sub.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_
mov ecx, dword [esp + 0xc0]
pop edi
pop esi
pop ebx
xor ecx, esp
mov al, 1
call fcn.00584870
add esp, 0xb8
ret