Function at 0x43ac60
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x70
mov dword [esp + 0x10], ecx
mov ebx, dword [ebp + 0xc]
mov eax, dword [0x5a8564]
xor eax, ebp
mov dword [esp + 0x68], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x50], xmm0
movdqa xmmword [esp + 0x40], xmm0
movdqa xmmword [esp + 0x30], xmm0
mov dword [esp + 0x64], 0xffffffff
mov dword [esp + 0x60], 0xffffffff
lea edi, [esp + 0x20]
push 0x172
push str....._base_files_file_win.cc
push str.DoInitialize
push edi
call fcn.00451690
add esp, 0x10
lea ecx, [esp + 0x30]
push 0
push edi
call fcn.00440b40
mov eax, ebx
and eax, 1
neg eax
and eax, 3
test bl, 2
mov ecx, 1
cmove ecx, eax
test bl, 4
mov eax, 4
cmovne ecx, eax
test bl, 8
mov edx, 2
cmove edx, ecx
test bl, 0x10
mov esi, 5
cmove esi, edx
test esi, esi
je 0x43ae23
mov ecx, ebx
mov edx, ebx
and ecx, 0x40
shl ecx, 0x18
test dl, dl
cmovns eax, ecx
rol ebx, 0x1a
and ebx, 0x80000100
or ebx, eax
test edx, 0x40000
mov ecx, edx
je 0x43ad41
mov eax, ecx
and eax, 0x200000
jne 0x43aec9
or ebx, 0x20000000
mov eax, ecx
shr eax, 4
and eax, 0x10000
or eax, ebx
mov ebx, ecx
mov edx, ecx
shr edx, 8
and edx, 3
shr ecx, 0xd
and ecx, 4
or ecx, edx
xor ecx, 3
mov edx, ebx
and edx, 0x400
mov dword [esp + 0xc], edx
shl edx, 0x14
mov edi, ebx
shr edi, 3
and edi, 0x100
or edi, edx
mov edx, ebx
shr edx, 0xb
and edx, 2
or edx, edi
mov edi, ebx
shl edi, 0xd
and edi, 0x4000000
or edi, edx
mov edx, ebx
shl edx, 8
and edx, 0xa000000
or edx, edi
mov edi, dword [ebp + 8]
cmp byte [edi + 0xb], 0
jns 0x43adad
mov edi, dword [edi]
push 0
push edx
push esi
push 0
push ecx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov ebx, dword [esp + 0x10]
cmp dword [ebx], eax
je 0x43ae03
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [ebx]
inc eax
cmp eax, 2
jb 0x43adeb
call fcn.004516c0
push dword [ebx]
call fcn.00433080
add esp, 4
mov dword [ebx], 0
mov eax, edi
inc eax
cmp eax, 2
jb 0x43adfa
mov dword [ebx], edi
call fcn.004516c0
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edi, dword [ebx]
inc edi
cmp edi, 2
mov ecx, dword [ebp + 0xc]
jae 0x43ae65
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0043abb0
add esp, 4
mov dword [ebx + 0x14], eax
jmp 0x43aeab
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [esp + 0x10]
mov dword [eax + 0x14], 0xffffffff
push 0x193
push str....._base_files_file_win.cc
push str.DoInitialize
push edi
call fcn.00451690
add esp, 0x10
lea esi, [esp + 0x1c]
push edi
push esi
call fcn.00458ce0
add esp, 8
mov ecx, esi
call fcn.00458cb0
jmp 0x43aeab
mov eax, dword [esp + 0xc]
shr eax, 0xa
mov dword [ebx + 0x14], 0
mov byte [ebx + 0x19], al
test cl, 4
jne 0x43ae86
test cl, 0xa
je 0x43ae98
mov byte [ebx + 0x18], 1
jmp 0x43ae98
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp + 0xc]
cmp eax, 0xb7
setne byte [ebx + 0x18]
test ecx, 0x200000
je 0x43aeab
push dword [ebp + 8]
call fcn.0043c220
add esp, 4
lea ecx, [esp + 0x30]
call fcn.00440ba0
mov ecx, dword [esp + 0x68]
xor ecx, ebp
call fcn.005327f1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
push 0
mov dword [esp + 0x18], eax
call fcn.004585a0
add esp, 4
mov dword [esp + 0xc], eax
push dword [esp + 0x14]
call fcn.004585a0
add esp, 4
push dword [esp + 0xc]
push eax
push str.flags__FLAG_WIN_NO_EXECUTE__0U
call fcn.00458910
mov ecx, dword [ebp + 0xc]
add esp, 0xc
mov dword [esp + 0xc], eax
test eax, eax
je 0x43ad3b
push 0x1a5
push str....._base_files_file_win.cc
push str.DoInitialize
push edi
call fcn.00451690
add esp, 0x10
lea eax, [esp + 0x18]
push edi
push dword [esp + 0x10]
push eax
mov edi, eax
call fcn.00458bc0
add esp, 0xc
mov ecx, edi
call fcn.00458cb0
mov ecx, dword [ebp + 0xc]
jmp 0x43ad3b