Function at 0x44a040
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov edi, ecx
mov ebx, dword [ebp + 0xc]
mov eax, dword [0x53c014]
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 esi, [esp + 0x20]
push 0x175
push str....._base_files_file_win.cc
push str.DoInitialize
push esi
call fcn.00442bf0
add esp, 0x10
lea ecx, [esp + 0x30]
push 0
push esi
call fcn.00459480
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 ecx, 5
cmove ecx, edx
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x44a295
mov dword [esp + 8], edi
mov ecx, ebx
and ecx, 0x40
shl ecx, 0x18
test bl, 0x80
cmove eax, ecx
mov esi, ebx
rol ebx, 0x1a
mov ecx, esi
shl ecx, 0xb
and ecx, 0x20000000
mov edx, esi
shr edx, 4
and edx, 0x10000
and ebx, 0x80000100
or ebx, ecx
or ebx, edx
or ebx, eax
mov eax, esi
shr eax, 8
and eax, 3
mov edx, esi
shr edx, 0xd
and edx, 4
or edx, eax
mov eax, esi
and eax, 0x400
mov dword [esp + 0x1c], eax
shl eax, 0x14
mov ecx, esi
shr ecx, 3
and ecx, 0x100
or ecx, eax
mov eax, esi
shr eax, 0xb
and eax, 2
or eax, ecx
mov ecx, esi
shl ecx, 0xd
and ecx, 0x4000000
or ecx, eax
shl esi, 8
and esi, 0xa000000
or esi, ecx
mov ecx, dword [ebp + 8]
xor edx, 3
cmp byte [ecx + 0xb], 0
mov eax, ecx
jns 0x44a17d
mov eax, dword [ecx]
push 0
mov dword [esp + 0x10], esi
push esi
push dword [esp + 0x1c]
push 0
mov dword [esp + 0x20], edx
push edx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov esi, dword [esp + 8]
cmp dword [esi], eax
je 0x44a1f6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov eax, dword [esi]
inc eax
cmp eax, 2
jb 0x44a1d2
mov dword [esp + 0x18], ecx
call fcn.00442c20
mov esi, dword [esp + 8]
push dword [esi]
call fcn.0044bd20
mov ecx, dword [esp + 0x1c]
add esp, 4
mov dword [esi], 0
mov eax, edi
inc eax
cmp eax, 2
jb 0x44a1e9
mov eax, dword [esp + 8]
mov dword [eax], edi
mov esi, ecx
call fcn.00442c20
mov ecx, esi
push ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [esp + 8]
mov edi, dword [eax]
inc edi
cmp edi, 1
ja 0x44a275
call fcn.0045b080
test al, al
je 0x44a275
mov edx, dword [ebp + 8]
cmp byte [edx + 0xb], 0
jns 0x44a210
mov edx, dword [edx]
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
push 0
push ecx
push dword [esp + 0x1c]
push 0
push eax
push ebx
push edx
call fcn.0045b170
add esp, 0x1c
mov edi, eax
mov eax, dword [esp + 8]
cmp dword [eax], edi
je 0x44a275
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov esi, dword [esp + 8]
mov eax, dword [esi]
inc eax
cmp eax, 2
jb 0x44a25f
call fcn.00442c20
push dword [esi]
call fcn.0044bd20
add esp, 4
mov dword [esi], 0
lea eax, [edi + 1]
cmp eax, 2
jb 0x44a26e
mov dword [esi], edi
call fcn.00442c20
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov esi, dword [esp + 8]
mov eax, dword [esi]
inc eax
cmp eax, 2
jae 0x44a2a6
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00449f80
add esp, 4
mov dword [esi + 0x14], eax
jmp 0x44a2d7
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [edi + 0x14], 0xffffffff
jmp 0x44a2d7
mov eax, dword [esp + 0x1c]
shr eax, 0xa
mov dword [esi + 0x14], 0
mov byte [esi + 0x19], al
mov eax, dword [ebp + 0xc]
test al, 4
jne 0x44a2c8
test al, 0xa
je 0x44a2d7
mov byte [esi + 0x18], 1
jmp 0x44a2d7
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
setne byte [esi + 0x18]
lea ecx, [esp + 0x30]
call fcn.00459500
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.004e96e3
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8