Function at 0x45dd90
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 + 4], ecx
mov ebx, dword [ebp + 0xc]
mov eax, dword [0x597010]
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
lea edi, [esp + 0x10]
push 0x173
push str....._base_files_file_win.cc
push str.DoInitialize
push edi
call fcn.004733a0
add esp, 0x10
lea ecx, [esp + 0x30]
push 0
push 0
call fcn.004a1610
test byte [0x598b10], 0x19
jne 0x45dfe0
mov eax, ebx
and eax, 1
neg eax
and eax, 3
test bl, 2
mov edx, 1
cmove edx, eax
test bl, 4
mov ecx, 4
cmovne edx, ecx
test bl, 8
mov esi, 2
cmove esi, edx
test bl, 0x10
mov eax, 5
cmove eax, esi
test eax, eax
je 0x45de5a
mov edx, ebx
and edx, 0x40
shl edx, 0x18
test bl, bl
cmovns ecx, edx
mov edx, ebx
rol edx, 0x1a
and edx, 0x80000100
or edx, ecx
test ebx, 0x40000
jne 0x45de77
mov edi, ebx
jmp 0x45de8b
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [esp + 4]
mov dword [eax + 0x14], 0xffffffff
call fcn.0047b030
jmp 0x45df70
test ebx, 0x200000
jne 0x45e063
mov edi, ebx
or edx, 0x20000000
mov ecx, edi
shr ecx, 4
and ecx, 0x10000
or ecx, edx
mov esi, edi
shr esi, 8
and esi, 3
mov edx, edi
shr edx, 0xd
and edx, 4
or edx, esi
mov ebx, edi
and ebx, 0x400
mov dword [esp + 0xc], ebx
shl ebx, 0x14
mov esi, edi
shr esi, 3
and esi, 0x100
or esi, ebx
mov ebx, edi
shr edi, 0xb
and edi, 2
or edi, esi
mov esi, ebx
shl esi, 0xd
and esi, 0x4000000
or esi, edi
mov edi, ebx
shl edi, 8
and edi, 0xa000000
or edi, esi
mov esi, dword [ebp + 8]
xor edx, 3
cmp byte [esi + 0xb], 0
jns 0x45def8
mov esi, dword [esi]
push 0
push edi
push eax
push 0
push edx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov esi, dword [esp + 4]
cmp dword [esi], eax
je 0x45df58
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi]
inc ecx
cmp ecx, 2
jb 0x45df3c
mov dword [esp + 8], eax
call fcn.004733d0
push dword [esi]
call fcn.00456a60
mov eax, dword [esp + 0xc]
add esp, 4
mov dword [esi], 0
mov ecx, edi
inc ecx
cmp ecx, 2
jb 0x45df4f
mov dword [esi], edi
mov edi, eax
call fcn.004733d0
mov eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edi, dword [esi]
inc edi
cmp edi, 2
jae 0x45df9b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.0045dc70
add esp, 4
mov dword [esi + 0x14], eax
test byte [0x598b10], 0x19
jne 0x45e018
lea ecx, [esp + 0x30]
call fcn.004a1a80
mov ecx, dword [esp + 0x68]
xor ecx, ebp
call fcn.00528e13
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov eax, dword [esp + 0xc]
shr eax, 0xa
mov dword [esi + 0x14], 0
mov byte [esi + 0x19], al
test bl, 4
jne 0x45dfbc
test bl, 0xa
je 0x45dfcb
mov byte [esi + 0x18], 1
jmp 0x45dfcb
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
setne byte [esi + 0x18]
test ebx, 0x200000
je 0x45df70
push dword [ebp + 8]
call fcn.0045f6f0
add esp, 4
jmp 0x45df70
mov dword [esp + 0x24], edi
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
sub esp, 8
movq xmm0, qword [esp + 0x30]
movq qword [esp], xmm0
lea edx, [esp + 0x2c]
mov ecx, str.ScopedBlockingCall
call fcn.00462090
add esp, 8
jmp 0x45ddfa
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
sub esp, 0x18
movq xmm0, qword [esp + 0x28]
movq qword [esp + 0x10], xmm0
mov dword [esp + 0xc], 0x57f540
mov dword [esp + 8], 0x57d4a9
mov dword [esp + 4], 0x598b10
mov dword [esp], 0x45
call fcn.00433670
add esp, 0x18
jmp 0x45df7d
int3