Function at 0x1000f6e0
Capabilities:
Check if file exists

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100315f0
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1c8
mov eax, dword [0x10046070]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov dword [ebp - 0x1bc], edi
mov esi, ecx
xorps xmm0, xmm0
movups xmmword [ebp - 0x34], xmm0
mov dword [ebp - 0x34], 0
movups xmmword [ebp - 0x24], xmm0
mov byte [ebp - 0x30], 0
movups xmmword [ebp - 0x2c], xmm0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 0
cmp dword [esi + 0x14], 0x10
jb 0x1000f762
mov esi, dword [esi]
lea ecx, [ebp - 0x34]
call fcn.10008510
push esi
call fcn.100028e0
add esp, 4
mov dword [ebp - 0x34], eax
test eax, eax
je 0x1000f782
lea ecx, [ebp - 0x34]
call fcn.10008580
lea eax, [ebp - 0x20]
mov dword [ebp - 0x64], 0
xorps xmm0, xmm0
lea ecx, [ebp - 0x6c]
push eax
movq qword [ebp - 0x6c], xmm0
call fcn.10010fc0
mov byte [ebp - 4], 1
mov esi, dword [ebp - 0x6c]
cmp esi, dword [ebp - 0x68]
je 0x1000f917
nop dword [eax]
push esi
mov edx, edi
lea ecx, [ebp - 0x1d4]
call fcn.100112f0
add esp, 4
mov ecx, eax
mov byte [ebp - 4], 2
call fcn.1000a2d0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x1c0]
cmp eax, 0x10
jb 0x1000f81c
mov ecx, dword [ebp - 0x1d4]
inc eax
cmp eax, 0x1000
jb 0x1000f813
test cl, 0x1f
jne 0x1000f912
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x1000f912
sub ecx, eax
cmp ecx, 4
jb 0x1000f912
cmp ecx, 0x23
ja 0x1000f912
mov ecx, eax
push ecx
call fcn.10012c24
add esp, 4
push esi
mov edx, edi
lea ecx, [ebp - 0x1d4]
call fcn.100112f0
mov edi, eax
add esp, 4
cmp dword [edi + 0x14], 0x10
jb 0x1000f837
mov edi, dword [edi]
push 0
push 0
lea eax, [ebp - 0x1b4]
mov dword [ebp - 0x1b8], 0
push eax
push 0
push 0
push 4
push 1
push edi
mov dword [ebp - 0x1b4], 0
call dword [sym.imp.ADVAPI32.dll_GetNamedSecurityInfoA]
test eax, eax
jne 0x1000f8b2
push 3
push 1
push 0x10000000
push str.Users
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.ADVAPI32.dll_BuildExplicitAccessWithNameA]
lea eax, [ebp - 0x1b8]
push eax
push dword [ebp - 0x1b4]
lea eax, [ebp - 0x54]
push eax
push 1
call dword [sym.imp.ADVAPI32.dll_SetEntriesInAclA]
test eax, eax
jne 0x1000f8b2
push eax
push dword [ebp - 0x1b8]
push eax
push eax
push 4
push 1
push edi
call dword [sym.imp.ADVAPI32.dll_SetNamedSecurityInfoA]
mov eax, dword [ebp - 0x1b8]
test eax, eax
je 0x1000f8c3
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov eax, dword [ebp - 0x1c0]
cmp eax, 0x10
jb 0x1000f8ff
mov ecx, dword [ebp - 0x1d4]
inc eax
cmp eax, 0x1000
jb 0x1000f8f6
test cl, 0x1f
jne 0x1000f912
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x1000f912
sub ecx, eax
cmp ecx, 4
jb 0x1000f912
cmp ecx, 0x23
ja 0x1000f912
mov ecx, eax
push ecx
call fcn.10012c24
add esp, 4
add esi, 0x18
cmp esi, dword [ebp - 0x68]
je 0x1000f917
mov edi, dword [ebp - 0x1bc]
jmp 0x1000f7b0
call fcn.10017f81
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x58], 0
xorps xmm0, xmm0
lea ecx, [ebp - 0x60]
push eax
movq qword [ebp - 0x60], xmm0
call fcn.10010fc0
mov byte [ebp - 4], 3
mov esi, dword [ebp - 0x60]
cmp esi, dword [ebp - 0x5c]
je 0x1000fdff
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
nop dword [eax + eax]
mov edx, dword [ebp - 0x1bc]
lea ecx, [ebp - 0x4c]
push esi
call fcn.100112f0
add esp, 4
mov byte [ebp - 4], 4
lea eax, [ebp - 0x4c]
cmp dword [ebp - 0x38], 0x10
cmovae eax, dword [ebp - 0x4c]
push eax
call edi
test eax, eax
je 0x1000f9d1
cmp byte [ebx + 8], 0
jne 0x1000f9db
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x38]
cmp eax, 0x10
jb 0x1000fdf3
mov ecx, dword [ebp - 0x4c]
inc eax
cmp eax, 0x1000
jb 0x1000f9c3
test cl, 0x1f
jne 0x1000f912
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x1000f912
sub ecx, eax
cmp ecx, 4
jb 0x1000f912
cmp ecx, 0x23
ja 0x1000f912
mov ecx, eax
push ecx
call fcn.10012c24
add esp, 4
jmp 0x1000fdf3
cmp byte [ebx + 8], 0
je 0x1000fabc
cmp dword [ebp - 0x38], 0x10
lea ecx, [ebp - 0x4c]
cmovae ecx, dword [ebp - 0x4c]
call fcn.1000f370
test al, al
je 0x1000fabc
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
cmovae eax, dword [ebp - 0x4c]
push eax
call edi
test eax, eax
je 0x1000fabc
sub esp, 0x18
mov ecx, esp
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x1000fa26
mov eax, dword [ecx]
jmp 0x1000fa28
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0x4c]
push 0
push eax
call fcn.10009050
lea ecx, [ebp - 0x1d4]
call fcn.1000af20
add esp, 0x18
cmp dword [eax + 0x14], 0x10
jb 0x1000fa4e
mov eax, dword [eax]
mov ecx, eax
call fcn.1000bc50
mov eax, dword [ebp - 0x1c0]
cmp eax, 0x10
jb 0x1000faa1
mov ecx, dword [ebp - 0x1d4]
inc eax
cmp eax, 0x1000
jb 0x1000fa98
test cl, 0x1f
jne 0x1000f912
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x1000f912
sub ecx, eax
cmp ecx, 4
jb 0x1000f912
cmp ecx, 0x23
ja 0x1000f912
mov ecx, eax
push ecx
call fcn.10012c24
add esp, 4
mov dword [ebp - 0x1c0], 0xf
mov dword [ebp - 0x1c4], 0
mov byte [ebp - 0x1d4], 0
cmp dword [ebp - 0x38], 0x10
lea edi, [ebp - 0x4c]
mov eax, dword [0x10047d70]
cmovae edi, dword [ebp - 0x4c]
test eax, eax
jne 0x1000faec
push 0x7c
call fcn.100128a4
add esp, 4
mov dword [ebp - 0x1b4], eax
mov ecx, eax
call fcn.1000bd40
mov dword [0x10047d70], eax
push edi
push str.Unzip__s
push 0
push 0x10041ccc
push eax
call fcn.1000bda0
add esp, 0x14
lea eax, [ebp - 0x138]
push 0xc0
push 0
push eax
call fcn.100159a0
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x4c]
lea ecx, [ebp - 0x138]
cmovae eax, dword [ebp - 0x4c]
push eax
call fcn.10011130
mov byte [ebp - 4], 5
cmp dword [esi + 0x14], 0x10
jb 0x1000fb3a
mov edi, dword [esi]
jmp 0x1000fb3c
mov edi, esi
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x1000fb7f
cmp byte [ebp - 0x30], 0
je 0x1000fb59
push ecx
call fcn.100023d0
mov ecx, dword [ebp - 0x34]
add esp, 4
mov byte [ebp - 0x30], 0
push 0
push edi
push ecx
call fcn.10001de0
add esp, 0xc
test eax, eax
jne 0x1000fb84
mov edi, dword [ebp - 0x34]
push edi
call fcn.10002b70
add esp, 4
test eax, eax
sete al
mov byte [ebp - 0x30], al
jmp 0x1000fb87
mov al, byte [ebp - 0x30]
jmp 0x1000fb8a
mov al, byte [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
test al, al
je 0x1000fbfc
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x1b0]
push eax
push ecx
call fcn.10001c90
xor edi, edi
test eax, eax
cmove edi, dword [ebp - 0x190]
push edi
call fcn.10012c37
add esp, 0x24
mov dword [ebp - 0x1b4], eax
push edi
mov edi, dword [ebp - 0x34]
push eax
push edi
call fcn.10002140
mov edi, dword [ebp - 0x1b4]
add esp, 0xc
test eax, eax
je 0x1000fbf3
push 0
push eax
push edi
lea ecx, [ebp - 0x128]
call fcn.10008b90
lea ecx, [ebp - 0x128]
call fcn.10008ac0
push edi
call fcn.10012680
add esp, 4
mov eax, dword [ebp - 0x128]
mov eax, dword [eax + 4]
cmp dword [ebp + eax - 0xf0], 0
je 0x1000fca4
lea eax, [ebp - 0x128]
push eax
lea ecx, [ebp - 0x74]
call fcn.10008d70
mov byte [ebp - 4], 6
cmp byte [ebp - 0x70], 0
je 0x1000fc72
mov eax, dword [ebp - 0x128]
mov eax, dword [eax + 4]
mov ecx, dword [ebp + eax - 0xf0]
mov eax, dword [ecx]
mov eax, dword [eax + 0x34]
call eax
cmp eax, 0xffffffff
jne 0x1000fc72
mov eax, dword [ebp - 0x128]
lea ecx, [ebp - 0x128]
push 0
mov eax, dword [eax + 4]
add ecx, eax
mov edx, dword [ecx + 0xc]
or edx, 4
cmp dword [ecx + 0x38], 0
cmovne edx, dword [ecx + 0xc]
or edx, 4
push edx
call fcn.10008330
mov byte [ebp - 4], 7
call fcn.10011469
test al, al
jne 0x1000fc87
mov ecx, dword [ebp - 0x74]
call fcn.10009660
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x74]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
mov ecx, dword [eax + ecx + 0x38]
test ecx, ecx
je 0x1000fca0
mov eax, dword [ecx]
call dword [eax + 8]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x120]
call fcn.1000e2d0
test eax, eax
jne 0x1000fcde
mov eax, dword [ebp - 0x138]
lea ecx, [ebp - 0x138]
push 0
mov eax, dword [eax + 4]
add ecx, eax
mov edx, dword [ecx + 0xc]
or edx, 2
mov eax, edx
or eax, 4
cmp dword [ecx + 0x38], 0
cmovne eax, edx
push eax
call fcn.10008330
cmp dword [ebp - 0x38], 0x10
lea eax, [ebp - 0x1b4]
push 0
push 0
push eax
push 0
push 0
push 4
lea edi, [ebp - 0x4c]
mov dword [ebp - 0x1b8], 0
cmovae edi, dword [ebp - 0x4c]
push 1
push edi
mov dword [ebp - 0x1b4], 0
call dword [sym.imp.ADVAPI32.dll_GetNamedSecurityInfoA]
test eax, eax
jne 0x1000fd6a
push 3
push 1
push 0x10000000
push str.Users
lea eax, [ebp - 0x158]
push eax
call dword [sym.imp.ADVAPI32.dll_BuildExplicitAccessWithNameA]
lea eax, [ebp - 0x1b8]
push eax
push dword [ebp - 0x1b4]
lea eax, [ebp - 0x158]
push eax
push 1
call dword [sym.imp.ADVAPI32.dll_SetEntriesInAclA]
test eax, eax
jne 0x1000fd6a
push eax
push dword [ebp - 0x1b8]
push eax
push eax
push 4
push 1
push edi
call dword [sym.imp.ADVAPI32.dll_SetNamedSecurityInfoA]
mov eax, dword [ebp - 0x1b8]
test eax, eax
je 0x1000fd7b
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
lea ecx, [ebp - 0xc0]
call fcn.100110b0
lea eax, [ebp - 0xc0]
mov byte [ebp - 4], 9
push eax
mov dword [ebp - 0xc0], vtable.std::ios_base.0
call fcn.10011d08
mov byte [ebp - 4], 3
add esp, 4
mov eax, dword [ebp - 0x38]
cmp eax, 0x10
jb 0x1000fded
mov ecx, dword [ebp - 0x4c]
inc eax
cmp eax, 0x1000
jb 0x1000fde4
test cl, 0x1f
jne 0x1000f912
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x1000f912
sub ecx, eax
cmp ecx, 4
jb 0x1000f912
cmp ecx, 0x23
ja 0x1000f912
mov ecx, eax
push ecx
call fcn.10012c24
add esp, 4
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
add esi, 0x18
cmp esi, dword [ebp - 0x5c]
jne 0x1000f950
cmp dword [ebp - 0x34], 0
je 0x1000fe6b
mov eax, dword [ebp - 0x2c]
mov esi, eax
mov edi, dword [ebp - 0x28]
cmp eax, edi
je 0x1000fe22
mov ecx, esi
call fcn.10008940
add esi, 0x18
cmp esi, edi
jne 0x1000fe11
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x1c]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
mov esi, eax
cmp eax, edi
je 0x1000fe42
mov ecx, esi
call fcn.10008940
add esi, 0x18
cmp esi, edi
jne 0x1000fe31
mov eax, dword [ebp - 0x20]
cmp byte [ebp - 0x30], 0
mov edi, dword [ebp - 0x34]
mov dword [ebp - 0x1c], eax
je 0x1000fe5b
push edi
call fcn.100023d0
add esp, 4
mov byte [ebp - 0x30], 0
push edi
call fcn.10002900
add esp, 4
mov dword [ebp - 0x34], 0
lea ecx, [ebp - 0x60]
call fcn.10008e00
lea ecx, [ebp - 0x6c]
call fcn.10008e00
lea ecx, [ebp - 0x34]
call fcn.10008510
lea ecx, [ebp - 0x20]
call fcn.10008e00
lea ecx, [ebp - 0x2c]
call fcn.10008e00
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.1001266f
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret