Function at 0x45d370
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 [0x57f040]
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 0x2f5
push str....._base_files_file_util_win.cc
push str.CreateDirectoryAndGetError
push ebx
call fcn.004b6790
add esp, 0x10
mov ecx, edi
push 0
push ebx
call fcn.004aabe0
cmp byte [esi + 0xb], 0
mov ebx, esi
jns 0x45d3d6
mov ebx, dword [esi]
mov edi, dword [ebp + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x45d410
mov bl, 1
test al, 0x10
je 0x45d5c7
lea ecx, [esp + 0x20]
call fcn.004aac50
mov ecx, dword [esp + 0x98]
xor ecx, ebp
call fcn.004e71b0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
dec eax
lea edi, [esp + 0x14]
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov ecx, esi
push edi
call fcn.004b73e0
movsx eax, byte [esi + 0xb]
mov ecx, esi
test eax, eax
jns 0x45d436
mov eax, dword [esi + 4]
mov ecx, dword [esi]
test eax, eax
js 0x45d540
je 0x45d448
test ecx, ecx
je 0x45d539
mov dword [esp + 8], ecx
movsx ecx, byte [esp + 0x1f]
test ecx, ecx
cmovs ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
cmovns edx, edi
test ecx, ecx
js 0x45d540
je 0x45d471
test edx, edx
je 0x45d539
cmp ecx, eax
jne 0x45d47d
test ecx, ecx
jne 0x45d54f
cmp ecx, eax
je 0x45d58a
push dword [ebp + 0xc]
push edi
call fcn.0045d370
add esp, 8
test al, al
je 0x45d5ac
push 0
push ebx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov bl, 1
test eax, eax
je 0x45d4b6
lea ecx, [esp + 0x14]
call fcn.004b73c0
jmp 0x45d3ef
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 8], eax
cmp eax, 0xb7
jne 0x45d5b3
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 0x234
push str....._base_files_file_util_win.cc
push str.DirectoryExists
push eax
call fcn.004b6790
add esp, 0x10
mov ecx, edi
push 0
lea eax, [esp + 0x54]
push eax
call fcn.004aabe0
cmp byte [esi + 0xb], 0
jns 0x45d513
mov esi, dword [esi]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov esi, eax
lea ecx, [esp + 0x60]
call fcn.004aac50
cmp esi, 0xffffffff
je 0x45d5b3
and esi, 0x10
jne 0x45d4a8
jmp 0x45d5b3
push str....._third_partylibc_srcinclude_string_view:316:_assertion___len__0____s___nullptr_failed:_string_view::string_view__CharT___size_t_:_received_nullptr_n
jmp 0x45d545
push str....._third_partylibc_srcinclude_string_view:314:_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
push 0x55eb93
call fcn.00516c70
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
movzx ecx, word [edx + ecx*2]
mov edi, dword [esp + 8]
mov edx, dword [esp + 0xc]
cmp cx, word [edi + edx*2]
lea edi, [esp + 0x14]
jne 0x45d485
mov ecx, dword [esp + 0xc]
inc ecx
mov dword [esp + 0xc], ecx
cmp eax, ecx
jne 0x45d55b
mov eax, 0xfffffffc
mov dword [esp + 8], 2
cmp dword [ebp + 0xc], 0
je 0x45d5a2
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor ebx, ebx
jmp 0x45d4a8
cmp dword [ebp + 0xc], 0
je 0x45d5a2
push dword [esp + 8]
call fcn.0045c550
add esp, 4
jmp 0x45d59d
test edi, edi
je 0x45d5d3
mov eax, edi
mov dword [edi], 0xfffffff7
push 0x50
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor ebx, ebx
jmp 0x45d3ef