Function at 0x4060a0
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 + 0xc], ecx
mov ebx, dword [ebp + 0xc]
mov eax, dword [0x64a040]
xor eax, ebp
mov dword [esp + 0x78], eax
pcmpeqd xmm0, xmm0
lea edi, [esp + 0x30]
movdqa xmmword [edi + 0x20], xmm0
movdqa xmmword [edi + 0x10], xmm0
movdqa xmmword [edi], xmm0
lea esi, [esp + 0x20]
push 0x171
push str.file_win.cc
push str.DoInitialize
push esi
call fcn.0051dbb0
add esp, 0x10
xor eax, eax
mov ecx, edi
push eax
push eax
call fcn.00536a30
mov dword [esp + 0x6c], 0xa
mov al, byte [0x64f42e]
test al, al
jne 0x406374
mov eax, ebx
and eax, 1
neg eax
and eax, 3
xor edx, edx
inc edx
test bl, 2
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 0x406357
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
bt ebx, 0x12
mov dword [esp + 0x10], eax
jb 0x406302
mov ecx, ebx
shr ecx, 4
and ecx, 0x10000
or ecx, edx
mov esi, ebx
shr esi, 8
and esi, 3
mov edx, ebx
shr edx, 0xd
and edx, 4
or edx, esi
mov esi, ebx
and esi, 0x400
mov eax, ebx
mov dword [esp + 0x1c], esi
mov ebx, esi
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 eax, dword [ebp + 8]
xor edx, 3
cmp byte [eax + 0xb], 0
mov esi, eax
jns 0x4061ea
mov esi, dword [eax]
xor ebx, ebx
push ebx
push edi
push dword [esp + 0x18]
push ebx
push edx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov esi, dword [esp + 0xc]
cmp dword [esi], eax
je 0x4062ac
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x10], eax
mov eax, dword [esi]
inc eax
cmp eax, 2
mov ebx, dword [ebp + 0xc]
jae 0x4062c0
mov eax, edi
inc eax
cmp eax, 2
jb 0x406232
mov dword [esi], edi
call fcn.005050f0
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edi, dword [esi]
inc edi
cmp edi, 2
jb 0x406287
mov eax, dword [esp + 0x1c]
shr eax, 0xa
mov dword [esi + 0x14], 0
mov byte [esi + 0x19], al
test bl, 4
jne 0x40629b
test bl, 0xa
je 0x406263
mov byte [esi + 0x18], 1
bt ebx, 0x15
jb 0x4062b1
lea ecx, [esp + 0x30]
call fcn.00545870
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.005810d5
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.004063b0
add esp, 4
mov dword [esi + 0x14], eax
jmp 0x406269
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
setne byte [esi + 0x18]
jmp 0x406263
mov ebx, dword [ebp + 0xc]
jmp 0x40623e
push 0
push dword [ebp + 8]
call fcn.004064d0
add esp, 8
jmp 0x406269
call fcn.005050f0
mov eax, dword [esi]
cmp dword [0x65b01c], 0
mov dword [esp + 0x18], eax
je 0x406317
mov eax, dword [0x65b01c]
mov dword [esp + 0xc], eax
mov eax, dword [eax]
mov ecx, dword [eax]
mov dword [esp + 0x14], ecx
call dword [0x6445dc]
mov ecx, dword [esp + 0xc]
push dword [esp + 0x18]
call dword [esp + 0x18]
mov dword [esi], 0
jmp 0x406223
bt ebx, 0x15
jb 0x40639a
or edx, 0x20000000
jmp 0x406177
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0x6384a9
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x40639d
mov ecx, eax
cmp eax, sym.browser.exe_GetHandleVerifier
je 0x406351
call dword [0x6445dc]
call ecx
push 0
push eax
call fcn.004464e0
add esp, 8
mov esi, dword [esp + 0xc]
jmp 0x4062d4
push 1
push 0
jmp 0x406343
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [esp + 0xc]
mov dword [eax + 0x14], 0xffffffff
call fcn.005ab050
jmp 0x406269
movzx ecx, al
lea eax, [esp + 0x74]
mov dword [eax], esi
lea esi, [esp + 0x70]
mov dword [esi], str.ScopedBlockingCall
lea edx, [esp + 0x6c]
push eax
push esi
call fcn.005da0b0
add esp, 8
jmp 0x406113
int3
xor eax, eax
push eax
jmp 0x406342