Function at 0x10013a80
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1c0
mov esi, esp
mov dword [esi + 0x10], ecx
mov ebx, dword [ebp + 8]
mov eax, dword [0x10146014]
xor eax, ebp
mov dword [esi + 0x1b8], eax
lea edi, [esi + 0xe0]
push 0xd8
push 0xff
push edi
call fcn.100c5370
add esp, 0xc
mov ecx, edi
call fcn.1006f4e0
test ebx, ebx
je 0x10013f5f
cmp dword [ebx], 0x10
jb 0x100141ed
xor eax, eax
dec eax
mov dword [esi + 0x7c], eax
mov dword [esi + 0x78], eax
mov dword [esi + 0x70], 0x10
mov eax, dword [ebx + 4]
mov dword [esi + 0x74], eax
mov eax, dword [ebx + 8]
mov dword [esi + 0x78], eax
mov edx, dword [ebx + 0xc]
test edx, edx
mov ecx, 0x10000
cmovne ecx, edx
mov dword [esi + 0x7c], ecx
mov ebx, 3
test eax, eax
mov edi, dword [esi + 0x10]
je 0x10013f02
cmp ecx, eax
jb 0x10013f02
mov dword [esi + 0x14], esp
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0xd0], xmm0
movdqa xmmword [esi + 0xc0], xmm0
sub esp, 0x24
mov ebx, esp
lea eax, [edi + 4]
mov dword [esi + 8], eax
push eax
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1001405e
mov dword [esi + 0xc], ebx
add ebx, 4
mov edi, dword [edi + 8]
test edi, edi
je 0x10013f80
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, edi
push dword [esi + 0x7c]
push ebx
call fcn.1001d7c0
lea edi, [esi + 0xc0]
mov eax, dword [esi + 0xc]
mov dword [eax], edi
call fcn.10035770
add esp, 0x24
mov esp, dword [esi + 0x14]
lea ebx, [esi + 0x6c]
mov dword [ebx], 0xffffffff
mov ecx, edi
push ebx
call fcn.10035570
mov dword [esi + 0x18], esp
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0xb0], xmm0
movdqa xmmword [esi + 0xa0], xmm0
sub esp, 0x24
mov dword [esi + 0x14], esp
mov dword [esi + 0x1c], esp
sub esp, 0x14
mov edi, esp
mov eax, dword [esi + 0x7c]
mov dword [esi + 0x28], eax
xor eax, eax
mov dword [edi + 4], eax
mov ecx, dword [ebx]
mov dword [ebx], eax
mov dword [esi + 0xc], ecx
inc ecx
mov dword [esi + 0x24], ecx
cmp ecx, 2
jb 0x10013bde
call fcn.1007c020
mov eax, dword [edi + 4]
mov ebx, dword [esi + 0x14]
add ebx, 4
lea ecx, [esi + 0xd0]
cmp eax, dword [esi + 0xc]
je 0x10013c28
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov eax, dword [edi + 4]
inc eax
cmp eax, 2
mov dword [esi + 0x20], ecx
jae 0x10013f26
cmp dword [esi + 0x24], 2
jb 0x10013c1b
mov eax, dword [esi + 0xc]
mov dword [edi + 4], eax
call fcn.1007c020
mov ecx, dword [esi + 0x20]
push ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea ecx, [esi + 0xd0]
mov dword [edi], ebx
mov dword [edi + 8], 2
mov eax, dword [esi + 0x28]
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], ecx
call fcn.10039680
add esp, 0x14
mov esp, dword [esi + 0x1c]
lea edi, [esi + 0xa0]
mov eax, dword [esi + 0x14]
mov dword [eax], edi
call fcn.10035bf0
add esp, 0x24
mov esp, dword [esi + 0x18]
mov ecx, edi
call fcn.1007ee00
test al, al
je 0x10014125
xor edi, edi
dec edi
lea ecx, [esi + 0x50]
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], edi
pcmpeqd xmm0, xmm0
movdqa xmmword [ecx], xmm0
call fcn.10094d10
lea ecx, [esi + 0x30]
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], edi
pcmpeqd xmm0, xmm0
movdqa xmmword [ecx], xmm0
call fcn.10094d10
mov edi, dword [esi + 8]
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
mov ebx, dword [esi + 0x10]
je 0x1001406b
mov edi, dword [ebx + 8]
test edi, edi
je 0x10013fb9
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov ecx, dword [edi + 0x18]
lea eax, [esi + 0x30]
push eax
lea eax, [esi + 0x50]
push eax
call fcn.1008c990
pcmpeqd xmm0, xmm0
lea eax, [esi + 0x80]
movdqa xmmword [eax + 0x10], xmm0
movdqa xmmword [eax], xmm0
lea edi, [esi + 0xa0]
mov ecx, edi
push eax
call fcn.10035c80
cmp byte [0x1014abac], 0
jne 0x1001412f
call fcn.10080220
mov dword [esi + 0xc], eax
mov dword [esi + 0x18], edx
mov dword [esi + 0x14], esp
push eax
sub esp, 0x34
mov ebx, esp
lea ecx, [ebx + 0xc]
push edi
call fcn.1007edf0
mov edi, dword [esi + 8]
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x10014077
mov eax, dword [esi + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x10013fec
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lea eax, [esi + 0x2c]
mov dword [ebx], eax
mov dword [ebx + 4], edi
lea eax, [esi + 0x50]
mov dword [ebx + 8], eax
lea eax, [esi + 0x70]
mov dword [ebx + 0x2c], eax
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x34], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0x30], eax
call fcn.100183f0
add esp, 0x38
mov esp, dword [esi + 0x14]
lea eax, [esi + 0x2c]
mov eax, dword [eax]
mov dword [esi + 0x14], eax
test eax, eax
je 0x10014142
mov dword [esi + 0x1c], esp
push eax
sub esp, 0x34
mov ebx, esp
lea ecx, [ebx + 0xc]
lea eax, [esi + 0x80]
push eax
call fcn.1007edf0
mov edi, dword [esi + 8]
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x10014083
mov eax, dword [esi + 0x10]
mov edi, dword [eax + 8]
test edi, edi
je 0x10014025
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lea eax, [esi + 0x2c]
mov dword [ebx], eax
mov dword [ebx + 4], edi
lea eax, [esi + 0x30]
mov dword [ebx + 8], eax
lea eax, [esi + 0x70]
mov dword [ebx + 0x2c], eax
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x34], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0x30], eax
call fcn.10016dc0
add esp, 0x38
mov esp, dword [esi + 0x1c]
mov eax, dword [esi + 0x2c]
mov dword [esi + 0xc], eax
test eax, eax
je 0x1001414c
mov edi, dword [esi + 0x14]
lock inc dword [edi + 4]
mov ebx, dword [esi + 0x10]
mov ecx, dword [ebx + 0x10]
call fcn.1006b2e0
mov dword [esi + 8], eax
push eax
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x10013f45
mov ecx, dword [ebx + 0x10]
lock inc dword [edi + 4]
push edi
call fcn.1006b2f0
mov dword [esi + 0x18], eax
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lock dec dword [edi + 4]
je 0x1001416a
mov eax, dword [ebp + 0xc]
mov ecx, dword [esi + 0x18]
mov dword [eax], ecx
mov edi, dword [esi + 0xc]
lock inc dword [edi + 4]
mov ecx, dword [ebx + 0x10]
call fcn.1006b2e0
mov dword [esi + 8], eax
push eax
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x10013f52
mov ecx, dword [ebx + 0x10]
lock inc dword [edi + 4]
push edi
call fcn.1006b2f0
mov ebx, eax
push dword [esi + 8]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lock dec dword [edi + 4]
mov edx, edi
je 0x10014187
mov eax, dword [ebp + 0x10]
mov dword [eax], ebx
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
test ebx, ebx
je 0x1001408f
xor edi, edi
test eax, eax
je 0x1001408f
lock dec dword [edx + 4]
mov ebx, dword [esi + 0x14]
je 0x100141a3
lock dec dword [ebx + 4]
je 0x100141be
mov ebx, edi
lea ecx, [esi + 0x80]
call fcn.1007ede0
lea ecx, [esi + 0x30]
call fcn.10094ce0
lea ecx, [esi + 0x50]
call fcn.10094ce0
lea ecx, [esi + 0xa0]
call fcn.1007ede0
mov eax, dword [esi + 0x6c]
inc eax
cmp eax, 2
jae 0x100141d8
lea ecx, [esi + 0xc0]
call fcn.1007e1f0
lea ecx, [esi + 0xe0]
call fcn.1006f700
mov ecx, dword [esi + 0x1b8]
xor ecx, ebp
call fcn.100c2603
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
call fcn.1007c020
push dword [edi + 4]
call fcn.10084410
mov ecx, dword [esi + 0x20]
add esp, 4
mov dword [edi + 4], 0
jmp 0x10013c07
mov ecx, dword [esi + 8]
call fcn.10084100
jmp 0x10013e1f
mov ecx, dword [esi + 8]
call fcn.10084100
jmp 0x10013e6b
movdqa xmm0, xmmword [0x10135410]
movdqu xmmword [esi + 0x70], xmm0
mov dword [esi + 0x78], 1
mov ecx, 0x10000
xor eax, eax
inc eax
jmp 0x10013afe
push 0x130
call fcn.100c1c01
add esp, 4
mov edi, eax
mov ecx, eax
call fcn.1001c3b0
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 8]
mov dword [eax + 8], edi
test ecx, ecx
je 0x10013b5b
push 1
call fcn.100ef1b0
mov eax, dword [esi + 0x10]
mov edi, dword [eax + 8]
jmp 0x10013b5b
push 0x130
call fcn.100c1c01
add esp, 4
mov edi, eax
mov ecx, eax
call fcn.1001c3b0
mov ecx, dword [ebx + 8]
mov dword [ebx + 8], edi
test ecx, ecx
je 0x10013cb9
push 1
call fcn.100ef1b0
mov edi, dword [ebx + 8]
jmp 0x10013cb9
push 0x130
call fcn.100c1c01
add esp, 4
mov edi, eax
mov ecx, eax
call fcn.1001c3b0
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 8]
mov dword [eax + 8], edi
test ecx, ecx
je 0x10013d3d
push 1
call fcn.100ef1b0
mov eax, dword [esi + 0x10]
mov edi, dword [eax + 8]
jmp 0x10013d3d
push 0x130
call fcn.100c1c01
add esp, 4
mov edi, eax
mov ecx, eax
call fcn.1001c3b0
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 8]
mov dword [eax + 8], edi
test ecx, ecx
je 0x10013db9
push 1
call fcn.100ef1b0
mov eax, dword [esi + 0x10]
mov edi, dword [eax + 8]
jmp 0x10013db9
mov ecx, dword [esi + 8]
call fcn.10084100
jmp 0x10013b4a
mov ecx, edi
call fcn.10084100
jmp 0x10013cae
mov ecx, edi
call fcn.10084100
jmp 0x10013d2f
mov ecx, edi
call fcn.10084100
jmp 0x10013dab
test eax, eax
je 0x100140f1
mov dword [esi + 0x2c], 0
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x10]
call fcn.1006b2e0
mov edi, eax
push eax
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x100141f7
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x10]
lea eax, [esi + 0x2c]
push eax
mov eax, dword [ebp + 0xc]
push dword [eax]
call fcn.1006bc90
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov edi, dword [esi + 0x2c]
test edi, edi
je 0x100140f1
lock dec dword [edi + 4]
jne 0x100140f1
mov eax, dword [edi]
mov ebx, dword [eax + 0x70]
mov ecx, ebx
call dword [section..00cfg]
mov ecx, edi
push 1
call ebx
mov ebx, dword [esi + 0x14]
mov eax, dword [ebx]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
call edi
mov ebx, dword [esi + 0xc]
mov eax, dword [ebx]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
call edi
mov edx, ebx
mov edi, 8
jmp 0x10013eab
mov ebx, 8
jmp 0x10013edf
mov dword [esi + 0xc], 0
mov dword [esi + 0x18], 0
jmp 0x10013d0b
mov ebx, 8
jmp 0x10013ec4
mov ebx, dword [esi + 0x14]
mov eax, dword [ebx]
mov edi, dword [eax + 4]
mov ecx, edi
call dword [section..00cfg]
mov ecx, ebx
call edi
mov edi, 8
jmp 0x10013eb8
mov edi, dword [esi + 0x14]
mov eax, dword [edi]
mov ecx, dword [eax + 0x70]
mov dword [esi + 8], ecx
call dword [section..00cfg]
mov ecx, edi
push 1
call dword [esi + 8]
jmp 0x10013e42
mov eax, dword [edx]
mov edi, dword [eax + 0x70]
mov ecx, edi
call dword [section..00cfg]
mov ecx, dword [esi + 0xc]
push 1
call edi
mov edx, dword [esi + 0xc]
jmp 0x10013e8f
mov eax, dword [edx]
mov ecx, dword [eax + 0x70]
mov dword [esi + 8], ecx
call dword [section..00cfg]
mov ecx, dword [esi + 0xc]
push 1
call dword [esi + 8]
jmp 0x10013eb8
mov eax, dword [ebx]
mov ecx, dword [eax + 0x70]
mov dword [esi + 8], ecx
call dword [section..00cfg]
mov ecx, ebx
push 1
call dword [esi + 8]
jmp 0x10013ec2
call fcn.1007c020
push dword [esi + 0x6c]
call fcn.10084410
add esp, 4
jmp 0x10013ef7
mov ebx, 3
jmp 0x10013f02
mov ecx, edi
call fcn.10084100
jmp 0x100140b6