Function at 0x1009dfd0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov dword [esp + 4], ecx
mov ebx, dword [ebp + 0xc]
mov eax, dword [0x101b9014]
xor eax, ebp
mov dword [esp + 0x78], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esp + 0x60], xmm0
movdqa xmmword [esp + 0x50], xmm0
movdqa xmmword [esp + 0x40], xmm0
movdqa xmmword [esp + 0x30], xmm0
lea edi, [esp + 0x10]
push 0x16f
push str....._base_files_file_win.cc
push str.DoInitialize
push edi
call fcn.10065960
add esp, 0x10
lea ecx, [esp + 0x30]
push 0
push 0
push edi
call fcn.100bcee0
test byte [0x101bacd0], 0x19
jne 0x1009e1fb
mov eax, ebx
and eax, 1
neg eax
and eax, 3
test bl, 2
mov ecx, 1
cmove ecx, eax
test bl, 4
mov edx, 4
cmovne ecx, edx
test bl, 8
mov esi, 2
cmove esi, ecx
test bl, 0x10
mov eax, 5
cmove eax, esi
test eax, eax
je 0x1009e191
mov dword [esp + 8], eax
mov eax, ebx
mov ecx, ebx
and ecx, 0x40
shl ecx, 0x18
test al, 0x80
cmove edx, ecx
mov ecx, ebx
rol ecx, 0x1a
mov esi, ebx
shl esi, 0xb
and esi, 0x20000000
mov edi, ebx
shr edi, 4
and edi, 0x10000
and ecx, 0x80000100
or ecx, esi
or ecx, edi
or ecx, edx
mov esi, ebx
shr esi, 8
and esi, 3
mov edx, ebx
shr edx, 0xd
and edx, 4
or edx, esi
and ebx, 0x400
mov dword [esp + 0xc], ebx
shl ebx, 0x14
mov esi, eax
shr esi, 3
and esi, 0x100
or esi, ebx
mov edi, eax
shr edi, 0xb
and edi, 2
or edi, esi
mov esi, eax
shl esi, 0xd
and esi, 0x4000000
or esi, edi
mov edi, eax
shl edi, 8
and edi, 0xa000000
or edi, esi
mov esi, dword [ebp + 8]
xor edx, 3
cmp byte [esi + 0xb], 0
jns 0x1009e11a
mov esi, dword [esi]
mov ebx, dword [esp + 4]
mov eax, dword [esp + 8]
push 0
push edi
push eax
push 0
push edx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp dword [ebx], eax
je 0x1009e174
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov eax, dword [ebx]
inc eax
cmp eax, 2
jb 0x1009e15c
call fcn.10065990
push dword [ebx]
call fcn.100849b0
add esp, 4
mov dword [ebx], 0
mov eax, edi
inc eax
cmp eax, 2
jb 0x1009e16b
mov dword [ebx], edi
call fcn.10065990
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edi, dword [ebx]
inc edi
cmp edi, 2
mov eax, dword [ebp + 0xc]
jae 0x1009e1a6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.1009deb0
add esp, 4
mov dword [ebx + 0x14], eax
jmp 0x1009e1d4
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [esp + 4]
mov dword [eax + 0x14], 0xffffffff
jmp 0x1009e1d4
mov ecx, dword [esp + 0xc]
shr ecx, 0xa
mov dword [ebx + 0x14], 0
mov byte [ebx + 0x19], cl
test al, 4
jne 0x1009e1c5
test al, 0xa
je 0x1009e1d4
mov byte [ebx + 0x18], 1
jmp 0x1009e1d4
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
setne byte [ebx + 0x18]
test byte [0x101bacd0], 0x19
jne 0x1009e233
lea ecx, [esp + 0x30]
call fcn.100bd410
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.101465a3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
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.10079ed0
add esp, 8
jmp 0x1009e044
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], 0x10178420
mov dword [esp + 8], 0x1019dfb6
mov dword [esp + 4], 0x101bacd0
mov dword [esp], 0x45
call fcn.1003beb0
add esp, 0x18
jmp 0x1009e1dd