Function at 0x1c4c1a0
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xa0
mov esi, dword [ebp + 8]
mov eax, dword [0x1cff040]
xor eax, ebp
mov dword [esp + 0x98], eax
pcmpeqd xmm0, xmm0
lea edi, [esp + 0x20]
movdqa xmmword [edi + 0x20], xmm0
movdqa xmmword [edi + 0x10], xmm0
movdqa xmmword [edi], xmm0
lea ebx, [esp + 0x60]
push 0x2fa
push str....._base_files_file_util_win.cc
push str.CreateDirectoryAndGetError
push ebx
call fcn.01c695c0
add esp, 0x10
mov ecx, edi
push 0
push ebx
call fcn.01c72820
cmp byte [esi + 0xb], 0
mov edi, esi
jns 0x1c4c206
mov edi, dword [esi]
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1c4c23d
mov bl, 1
test al, 0x10
je 0x1c4c40a
lea ecx, [esp + 0x20]
call fcn.01c72890
mov ecx, dword [esp + 0x98]
xor ecx, ebp
call fcn.01c87bd3
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
dec eax
lea ebx, [esp + 0x14]
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov ecx, esi
push ebx
call fcn.01c6ae70
movsx eax, byte [esi + 0xb]
mov edx, esi
test eax, eax
jns 0x1c4c263
mov eax, dword [esi + 4]
mov edx, dword [esi]
test eax, eax
js 0x1c4c37c
sete cl
mov dword [esp + 8], edx
test edx, edx
setne dl
or dl, cl
je 0x1c4c383
movsx ecx, byte [esp + 0x1f]
test ecx, ecx
cmovs ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
cmovns edx, ebx
test ecx, ecx
js 0x1c4c37c
sete bl
test edx, edx
setne bh
or bh, bl
je 0x1c4c383
test ecx, ecx
sete bl
cmp ecx, eax
setne bh
or bh, bl
je 0x1c4c392
cmp ecx, eax
lea ebx, [esp + 0x14]
je 0x1c4c3cd
push dword [ebp + 0xc]
push ebx
call fcn.01c4c1a0
add esp, 8
test al, al
je 0x1c4c3ef
push 0
push edi
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov bl, 1
test eax, eax
je 0x1c4c2f9
lea ecx, [esp + 0x14]
call fcn.01c6a800
jmp 0x1c4c21c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 8], eax
cmp eax, 0xb7
jne 0x1c4c3f6
pcmpeqd xmm0, xmm0
lea edi, [esp + 0x60]
movdqa xmmword [edi + 0x20], xmm0
movdqa xmmword [edi + 0x10], xmm0
movdqa xmmword [edi], xmm0
lea eax, [esp + 0x50]
push 0x239
push str....._base_files_file_util_win.cc
push str.DirectoryExists
push eax
call fcn.01c695c0
add esp, 0x10
mov ecx, edi
push 0
lea eax, [esp + 0x54]
push eax
call fcn.01c72820
cmp byte [esi + 0xb], 0
jns 0x1c4c356
mov esi, dword [esi]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
lea ecx, [esp + 0x60]
call fcn.01c72890
cmp esi, 0xffffffff
je 0x1c4c3f6
and esi, 0x10
jne 0x1c4c2eb
jmp 0x1c4c3f6
push str....._third_partylibc_srcinclude_string_view:318:_assertion___len___static_cast_size_type__numeric_limits_difference_type_::max____failed:_string_view::string_view__CharT___size_t_:_length_does_not_fit_in_difference_type_n
jmp 0x1c4c388
push str....._third_partylibc_srcinclude_string_view:320:_assertion___len__0____s___nullptr_failed:_string_view::string_view__CharT___size_t_:_received_nullptr_n
push 0x1ce99e6
call fcn.01cb3fe0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0xc]
movzx ebx, word [edx + ecx*2]
mov ecx, dword [esp + 8]
mov edi, dword [esp + 0xc]
cmp bx, word [ecx + edi*2]
mov edi, dword [esp + 0x10]
lea ebx, [esp + 0x14]
jne 0x1c4c2c8
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp eax, ecx
jne 0x1c4c39e
mov eax, 0xfffffffc
mov dword [esp + 8], 2
cmp dword [ebp + 0xc], 0
je 0x1c4c3e5
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor ebx, ebx
jmp 0x1c4c2eb
cmp dword [ebp + 0xc], 0
je 0x1c4c3e5
push dword [esp + 8]
call fcn.01c51970
add esp, 4
jmp 0x1c4c3e0
cmp dword [ebp + 0xc], 0
je 0x1c4c419
mov eax, dword [ebp + 0xc]
mov dword [eax], 0xfffffff7
push 0x50
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor ebx, ebx
jmp 0x1c4c21c