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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10026410
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push ebx
push esi
push edi
mov eax, dword [0x100370a0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor ebx, ebx
mov dword [ebp - 0x18], ebx
mov eax, dword [section..data]
mov edx, dword [eax + 0xc]
mov ecx, section..data
call edx
add eax, 0x10
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
mov dword [ebp - 4], ebx
mov edx, dword [section..data]
push eax
mov eax, dword [edx + 0xc]
push ecx
mov edi, esp
mov ecx, section..data
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x1c], edi
call eax
add eax, 0x10
mov dword [edi], eax
mov ecx, str.Path
mov byte [ebp - 4], 1
test ecx, 0xffff0000
jne 0x100047f4
mov edx, ecx
movzx esi, dx
push esi
call fcn.10003db0
add esp, 4
cmp eax, ebx
je 0x10004800
push eax
mov eax, esi
call fcn.10003970
jmp 0x10004800
mov ebx, str.Path
mov eax, edi
call fcn.10003450
mov byte [ebp - 4], 2
mov edi, dword [ebp + 8]
mov ecx, dword [edi]
add ecx, 0x5c
push ecx
mov eax, esp
mov dword [ebp + 8], esp
push str.SoftwareGoogleChromeExtensions_
push eax
call fcn.10005010
add esp, 8
push 0x80000002
lea ecx, [edi + 4]
push ecx
mov byte [ebp - 4], 0
call fcn.1000cd40
test al, al
jne 0x10004863
mov esi, dword [ebp + 0xc]
push esi
mov ecx, str.UMSFGADRBOE
call fcn.10003060
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x10004a82
mov ebx, dword [ebp - 0x10]
add ebx, 0xfffffff0
mov eax, ebx
mov dword [ebp - 0x18], ebx
call fcn.10003730
lea esi, [eax + 0x10]
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1000488a
mov byte [ebp + 0xb], 1
test al, 0x10
je 0x1000488e
mov byte [ebp + 0xb], 0
lea eax, [esi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x100048aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [ebp + 0xb], 0
jne 0x100048e7
mov esi, dword [ebp + 0xc]
push esi
mov ecx, 0x1002f4e4
call fcn.10003060
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10004a8e
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
jmp 0x10004a8e
lea esi, [ebp + 8]
mov ecx, edi
call fcn.10004620
mov byte [ebp - 4], 3
mov eax, dword [eax]
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x1000490c
push 0x80004005
call fcn.100040a0
push eax
mov eax, dword [ebp - 0x10]
push eax
call fcn.100137f0
add esp, 8
test eax, eax
mov byte [ebp - 4], 0
mov eax, dword [ebp + 8]
setne bl
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10004941
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test bl, bl
je 0x10004958
mov esi, dword [ebp + 0xc]
push esi
mov ecx, 0x1002f4e8
call fcn.10003060
jmp 0x10004a6b
xor eax, eax
call fcn.1000e910
lea ecx, [ebp - 0x14]
push ecx
call fcn.10008c00
mov bl, 4
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x14]
push ecx
add eax, 0xfffffff0
mov dword [ebp - 0x1c], esp
mov esi, esp
call fcn.10003730
lea edx, [ebp - 0x34]
add eax, 0x10
push edx
mov dword [esi], eax
call fcn.10005cd0
mov byte [ebp - 4], 5
mov esi, dword [edi]
mov eax, dword [esi + 0x5c]
add esi, 0x5c
cmp dword [eax - 4], 1
jle 0x100049a8
mov eax, dword [eax - 0xc]
push eax
push esi
call fcn.10004010
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x34]
push ecx
call fcn.100060d0
add eax, 7
cmp eax, 9
ja case.0x100049bc.0
jmp dword [eax*4 + 0x10004aa4]
mov ecx, 0x1002f4ec
mov esi, dword [ebp + 0xc]
push esi
call fcn.10003060
lea eax, [ebp - 0x34]
call fcn.10004740
lea ecx, [ebp - 0x14]
call fcn.100031a0
lea ecx, [ebp - 0x10]
call fcn.100031a0
jmp 0x10004a8e
mov ecx, 0x1002f4f0
jmp 0x100049c8
mov ecx, 0x1002f4f4
jmp 0x100049c8
mov ecx, 0x1002f4f8
jmp 0x100049c8
mov ecx, 0x1002f4fc
jmp 0x100049c8
mov ecx, 0x1002f500
jmp 0x100049c8
mov ecx, 0x1002f504
jmp 0x100049c8
mov esi, dword [ebp + 0xc]
push esi
mov ecx, 0x1002f508
call fcn.10003060
mov byte [ebp - 4], bl
mov eax, dword [ebp - 0x34]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x10004a48
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10004a6b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10004a8e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
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