Function at 0x453cf0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xdc
mov eax, dword [0x51a0a0]
xor eax, esp
mov dword [esp + 0xd8], eax
push ebx
mov ebx, ecx
mov dword [esp + 0x18], 0
push esi
push edi
mov dword [esp + 0x28], 0x100000
cmp dword [ebx + 0x14], 8
jb 0x453d29
mov eax, dword [ebx]
jmp 0x453d2b
mov eax, ebx
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ecx, dword [0x51d17c]
cmp eax, 0xffffffff
mov dword [esp + 0xa8], 0
setne byte [esp + 0x13]
mov dword [esp + 0xc0], 7
xor eax, eax
mov dword [esp + 0xbc], 0
mov word [esp + 0xac], ax
test ecx, ecx
je 0x453d7c
mov eax, dword [ecx]
lea edx, [esp + 0xc4]
push edx
call dword [eax + 8]
push 0x8064
push ebx
lea ecx, [esp + 0xb0]
mov dword [esp + 0xd0], 0
mov word [esp + 0xd4], 0
call fcn.00451e00
push 0x34
call fcn.004cbadf
add esp, 4
mov ecx, eax
call fcn.00469b00
cmp byte [esp + 0x13], 0
mov edi, eax
mov dword [esp + 0x14], edi
je 0x453e1b
lea ecx, [esp + 0xa8]
call fcn.004598e0
push edx
push eax
call fcn.004358b0
add esp, 8
mov dword [esp + 0x28], eax
lea eax, [esp + 0xa8]
lea ecx, [esp + 0x80]
push eax
call fcn.00451bf0
sub esp, 0x28
lea eax, [esp + 0xa8]
mov ecx, esp
push eax
call fcn.00451bf0
push 1
push 0x504fa8
mov ecx, edi
call fcn.00469990
lea ecx, [esp + 0x80]
jmp 0x453ffc
lea eax, [esp + 0xa8]
mov dword [esp + 0xd8], 0x100000
xorps xmm0, xmm0
mov dword [esp + 0xdc], 0
push eax
lea ecx, [esp + 0x5c]
movlpd qword [esp + 0xd4], xmm0
call fcn.00451bf0
cmp dword [edi + 0x28], 0
lea eax, [edi + 0x28]
mov dword [esp + 0x44], eax
jne 0x453ff8
lea eax, [esp + 0x58]
mov ecx, edi
push eax
call fcn.00451d70
mov eax, dword [edi]
test eax, eax
je 0x453ff1
cmp eax, 0xffffffff
je 0x453ff1
push 0
push 0x100000
push 0
push 4
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov ecx, eax
lea esi, [edi + 0x30]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], esi
cmp dword [esi], ecx
je 0x453f3c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x40], eax
mov eax, dword [esi]
mov dword [esp + 0x3c], eax
test eax, eax
je 0x453efd
cmp eax, 0xffffffff
je 0x453efd
call fcn.0044dee0
mov edi, dword [ebp + 4]
mov esi, eax
call sym.setup.exe_GetHandleVerifier
push esi
mov esi, dword [esp + 0x1c]
mov ecx, eax
push edi
mov edx, dword [eax]
push esi
push dword [esp + 0x48]
call dword [edx + 8]
mov esi, dword [esi]
call sym.setup.exe_GetHandleVerifier
push esi
mov ecx, eax
mov edx, dword [eax]
call dword [edx]
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov dword [esi], 0
mov eax, dword [esp + 0x24]
test eax, eax
je 0x453f32
cmp eax, 0xffffffff
je 0x453f32
mov dword [esi], eax
call fcn.0044dee0
mov edi, dword [ebp + 4]
mov esi, eax
call sym.setup.exe_GetHandleVerifier
mov ecx, dword [esp + 0x24]
push esi
mov esi, dword [esp + 0x1c]
mov edx, dword [eax]
push edi
push esi
push ecx
mov ecx, eax
call dword [edx + 4]
mov edi, dword [esp + 0x14]
push dword [esp + 0x40]
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [esi]
test eax, eax
je 0x453ff1
cmp eax, 0xffffffff
je 0x453ff1
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0
push eax
push 0
push 0x100000
xorps xmm0, xmm0
lea edx, [esp + 0x5c]
push 0
push 0
lea ecx, [esp + 0x44]
movq qword [esp + 0x5c], xmm0
movlpd qword [esp + 0x44], xmm0
movlpd qword [esp + 0x64], xmm0
call fcn.00469a40
mov eax, dword [esp + 0x30]
add esp, 0x14
cdq
add eax, 0x100000
adc edx, 0
cmp dword [esp + 0x34], 0
jl 0x453ff1
mov ecx, dword [esp + 0x30]
jg 0x453faa
test ecx, ecx
jb 0x453ff1
test edx, edx
jl 0x453ff1
jg 0x453fb6
test eax, eax
jb 0x453ff1
test edx, edx
ja 0x453ff1
jb 0x453fbf
cmp eax, 0xffffffff
ja 0x453ff1
mov edx, dword [esp + 0x34]
push eax
push ecx
push edx
push 2
push dword [esi]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], edx
mov dword [edi + 0x2c], 0x100000
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov ecx, dword [esp + 0x44]
mov dword [ecx], eax
test eax, eax
je 0x453ff1
add eax, dword [esp + 0x1c]
mov dword [ecx], eax
jmp 0x453ff8
mov ecx, edi
call fcn.00469d90
lea ecx, [esp + 0x58]
call fcn.00451d00
mov eax, dword [edi + 0x28]
test eax, eax
je 0x4540c4
mov ecx, dword [edi + 0x2c]
test al, 7
jne 0x4540c4
lea eax, [ecx - 0x40]
cmp eax, 0x3fffffc0
ja 0x4540c4
push 0x50
call fcn.004cbadf
add esp, 4
mov esi, eax
push 0x28
call fcn.004cbadf
add esp, 4
mov dword [esp + 0x14], 0
mov ecx, eax
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push 0
push 0
push 0
push dword [esp + 0x3c]
push ecx
mov eax, esp
mov dword [eax], edi
call fcn.004564e0
push ecx
mov ecx, esp
mov dword [esp + 0x24], 0
mov dword [ecx], eax
mov ecx, esi
call fcn.004544c0
cmp dword [0x51ed40], 0
mov dword [esp + 0x2c], eax
je 0x454081
int3
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], 0
mov dword [0x51ed40], eax
call fcn.0045f1b0
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4540a5
mov eax, dword [ecx]
push 1
call dword [eax]
mov ecx, dword [0x51ed40]
add ecx, 0x38
cmp ecx, ebx
je 0x4540bc
push 0xffffffffffffffff
push 0
push ebx
call fcn.0041b960
mov edi, dword [esp + 0x14]
mov bl, 1
jmp 0x4540c6
xor bl, bl
test edi, edi
je 0x4540da
mov ecx, edi
call fcn.004698d0
push edi
call fcn.004cbd7a
add esp, 4
lea ecx, [esp + 0xa8]
call fcn.00451d00
mov ecx, dword [esp + 0xe4]
mov al, bl
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004cb8a3
mov esp, ebp
pop ebp
ret