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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56a820
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push esi
push edi
mov eax, dword [0x5d6b80]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x38], ecx
mov dword [ebp - 4], 0
call fcn.0045adc0
xor edx, edx
mov ecx, eax
test ecx, ecx
setne dl
test edx, edx
jne 0x4a46ee
push 0x80004005
call fcn.0045a8f0
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
push dword [ebp + 8]
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 1
push dword [0x5d6704]
push 0x57e340
push eax
call fcn.0045acb0
add esp, 0x10
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov ebx, dword [ebp - 0x20]
lea ecx, [ebp - 0x54]
push 0x20019
push ebx
push reloc.OLEAUT32.dll_SysReAllocString
mov byte [ebp - 4], 2
call fcn.0045b220
or edi, 0xffffffff
test eax, eax
jne 0x4a4a90
call fcn.0045adc0
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x4a476d
push 0x80004005
call fcn.0045a8f0
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x14], eax
mov ecx, dword [eax - 8]
mov edx, 1
sub edx, dword [eax - 4]
sub ecx, 0x104
or ecx, edx
mov byte [ebp - 4], 3
mov dword [ebp - 0x2c], 0x104
jge 0x4a47aa
push 0x104
lea ecx, [ebp - 0x14]
call fcn.0045b530
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x2c]
push ecx
push eax
push 0x583010
lea ecx, [ebp - 0x54]
call fcn.0045d730
test eax, eax
mov eax, dword [ebp - 0x14]
sete byte [ebp - 0xd]
push dword [eax - 8]
push eax
call fcn.00526d13
mov edx, eax
add esp, 8
test edx, edx
js 0x4a4b8b
mov ecx, dword [ebp - 0x14]
cmp edx, dword [ecx - 8]
jg 0x4a4b8b
mov dword [ecx - 0xc], edx
xor ecx, ecx
mov eax, dword [ebp - 0x14]
mov word [eax + edx*2], cx
cmp byte [ebp - 0xd], cl
je 0x4a4a70
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4a4811
xor esi, esi
jmp 0x4a4b58
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x40], 0
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 4
push eax
mov ecx, 0x5de840
call fcn.005154d0
test eax, eax
je 0x4a4a64
mov eax, dword [ebp - 0x44]
xor esi, esi
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x1c], esi
test eax, eax
jle 0x4a4a64
call fcn.004a0bc0
mov ecx, eax
mov dword [ebp - 0x74], 0
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov byte [ebp - 4], 5
test esi, esi
js 0x4a4b7a
cmp esi, dword [ebp - 0x44]
jge 0x4a4b7a
mov eax, dword [ebp - 0x48]
lea edx, [ebp - 0x74]
push 0
push edx
push dword [eax + esi*4]
call fcn.0049eb30
xor edi, edi
mov dword [ebp - 0x18], edi
cmp dword [ebp - 0x70], edi
jbe 0x4a4a44
lea ecx, [ecx]
call fcn.0045adc0
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4a46e4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x2c], esi
mov byte [ebp - 4], 6
cmp edi, dword [ebp - 0x70]
jae 0x4a4b8b
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x24]
lea eax, [eax + edi*4]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x30], eax
mov eax, dword [eax]
cmp eax, ecx
jae 0x4a4a16
mov esi, dword [ebp - 0x24]
lea ecx, [eax + eax*4]
mov eax, dword [esi]
lea eax, [eax + ecx*8]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0045a580
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov byte [ebp - 4], 7
call fcn.0045adc0
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
je 0x4a46e4
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x3c], edi
push str.manifest_browser_actiondefault_popup
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 8
call fcn.0045a3a0
mov eax, dword [ebp - 0x30]
mov ecx, dword [esi + 4]
mov byte [ebp - 4], 9
mov eax, dword [eax]
cmp eax, ecx
jb 0x4a4971
xor esi, esi
jmp 0x4a498f
lea ecx, [eax + eax*4]
mov eax, dword [esi]
lea ecx, [eax + ecx*8]
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.004a2450
xor eax, eax
cmp eax, dword [ebp - 0x60]
sbb esi, esi
neg esi
mov edx, dword [ebp - 0x28]
or ecx, 0xffffffff
add edx, 0xfffffff0
mov byte [ebp - 4], 8
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a49b0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
mov esi, dword [ebp - 0x2c]
je 0x4a49da
xor eax, eax
test esi, esi
setne al
test eax, eax
je 0x4a46e4
push esi
push dword [ebp + 8]
call fcn.00526fc5
add esp, 8
test eax, eax
je 0x4a4ac4
add edi, 0xfffffff0
mov byte [ebp - 4], 7
or ecx, 0xffffffff
lea eax, [edi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a49f8
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x4a4a13
push dword [ebp - 0x60]
push eax
call fcn.0045a910
push dword [ebp - 0x64]
call fcn.0052616f
add esp, 0xc
mov edi, dword [ebp - 0x18]
add esi, 0xfffffff0
mov byte [ebp - 4], 5
or ecx, 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a4a34
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
inc edi
mov dword [ebp - 0x18], edi
cmp edi, dword [ebp - 0x70]
jb 0x4a48b0
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x4a4a54
push eax
call fcn.0052616f
add esp, 4
inc esi
mov dword [ebp - 0x1c], esi
cmp esi, dword [ebp - 0x34]
jl 0x4a4853
or edi, 0xffffffff
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 3
call fcn.004cdef0
mov edx, dword [ebp - 0x14]
mov ecx, edi
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a4a90
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push ecx
add eax, 0xfffffff0
mov esi, esp
push eax
call fcn.0045a950
mov ecx, dword [ebp - 0x38]
add esp, 4
add eax, 0x10
mov dword [esi], eax
call fcn.004a1b50
test eax, eax
je 0x4a4b95
mov esi, 1
jmp 0x4a4b97
mov ecx, dword [ebp - 0x1c]
cmp ecx, dword [ebp - 0x44]
jge 0x4a4b7a
mov eax, dword [ebp - 0x48]
lea eax, [eax + ecx*4]
mov ecx, dword [ebp + 0xc]
push eax
call fcn.0045a580
lea edx, [edi - 0x10]
mov byte [ebp - 4], 7
or edi, 0xffffffff
lea eax, [edx + 0xc]
mov ecx, edi
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a4aff
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x64]
test eax, eax
je 0x4a4b1a
push dword [ebp - 0x60]
push eax
call fcn.0045a910
push dword [ebp - 0x64]
call fcn.0052616f
add esp, 0xc
add esi, 0xfffffff0
mov byte [ebp - 4], 5
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a4b37
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x4a4b47
push eax
call fcn.0052616f
add esp, 4
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 3
call fcn.004cdef0
mov esi, 1
mov edx, dword [ebp - 0x14]
mov ecx, edi
add edx, 0xfffffff0
mov byte [ebp - 4], 2
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a4b97
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4a4b97
push 0
push 0
push 1
push 0xc000008c
call dword [sym.imp.KERNEL32.dll_RaiseException]
push 0x80070057
call fcn.0045a8f0
xor esi, esi
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x4a4ba5
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
add ebx, 0xfffffff0
mov byte [ebp - 4], 0
mov ecx, edi
lea eax, [ebx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4a4bc2
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [ebp + 8]
add ebx, 0xfffffff0
mov dword [ebp - 4], 0xffffffff
lea eax, [ebx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x4a4be3
mov ecx, dword [ebx]
push ebx
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8