Function at 0x10029b70
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
push ebx
push esi
push edi
xor edi, edi
mov esi, eax
cmp dword [ebp + 8], edi
je 0x10029ba7
push 1
push esi
call fcn.10029650
test eax, eax
jne 0x10029ba7
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x10029ba7
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x10193b4c
lea eax, [esp + 0x10]
push esi
push eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], edi
call fcn.1011eb5c
add esp, 0xc
test eax, eax
je 0x10029c01
call fcn.1011d53f
cmp dword [eax], 2
jne 0x10029be1
mov eax, 2
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x10029ed5
call fcn.1011d53f
mov eax, dword [eax]
sub eax, 0xd
neg eax
sbb eax, eax
and eax, 0x69
add eax, 5
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x10029ed5
push edi
call fcn.1011d588
add esp, 4
mov ebx, 0x101b8154
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
call fcn.10006de0
cmp dword [0x101b814c], edi
jne 0x10029c85
cmp dword [0x101b8150], edi
jl 0x10029c85
xor eax, eax
inc dword [0x101b8150]
mov dword [0x101b8154], edi
test eax, eax
je 0x10029c4d
mov ecx, dword [0x101b8158]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [0x101b8164]
mov ebx, dword [ecx]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x24], ecx
cmp ebx, ecx
jne 0x10029c96
xor esi, esi
mov ebx, 0x101b8154
lea edi, [esi + 1]
call fcn.10006de0
mov eax, dword [0x101b8150]
xor ecx, ecx
cmp eax, ecx
jle 0x10029e74
dec eax
jmp 0x10029e75
mov eax, 1
add dword [0x101b8148], eax
jmp 0x10029c34
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx + 0x10]
mov edi, dword [eax]
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], edi
cmp edi, eax
je 0x10029d54
mov eax, dword [edi + 8]
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0xc]
push eax
push ecx
push str._s__s_n
push edx
call fcn.1011bf46
add esp, 0x10
test eax, eax
js 0x10029d67
mov eax, dword [edi + 0x10]
mov esi, dword [eax]
mov dword [esp + 0x1c], eax
cmp esi, eax
je 0x10029d40
lea ebx, [ebx]
mov edx, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18]
cmp edx, dword [esp + 0x2c]
jl 0x10029d36
jg 0x10029cf4
cmp ebx, dword [esp + 0x28]
jbe 0x10029d36
mov eax, dword [esi + 0xc]
cmp byte [eax], 0
jne 0x10029d01
mov eax, 0x10193b58
mov edi, dword [esi + 0x28]
mov ecx, dword [esi + 8]
push edi
mov edi, dword [esi + 0x24]
push edi
mov edi, dword [esi + 0x20]
push edi
push edx
push ebx
push eax
mov eax, dword [esp + 0x24]
push ecx
push str._t_s__s__I64d__d__d__d_n
push eax
call fcn.1011bf46
add esp, 0x24
test eax, eax
js 0x10029df1
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov esi, dword [esi]
cmp esi, eax
jne 0x10029ce0
mov ebx, dword [esp + 0x10]
mov edi, dword [edi]
mov dword [esp + 0x14], edi
cmp edi, dword [esp + 0x20]
jne 0x10029cab
mov ecx, dword [esp + 0x24]
mov eax, dword [ebx]
mov dword [esp + 0x10], eax
cmp eax, ecx
jne 0x10029c92
jmp 0x10029c61
push 0x1d
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor esi, esi
mov ebx, 0x101b8154
lea edi, [esi + 1]
call fcn.10006de0
mov eax, dword [0x101b8150]
xor ecx, ecx
cmp eax, ecx
jle 0x10029d8d
sub eax, edi
jmp 0x10029d8f
add eax, edi
mov dword [0x101b8150], eax
cmp eax, ecx
jne 0x10029dd2
cmp dword [0x101b814c], ecx
jle 0x10029db7
sub dword [0x101b814c], edi
mov dword [0x101b8150], 0xffffffff
mov esi, 0x101b815c
jmp 0x10029dd2
mov eax, dword [0x101b8148]
cmp eax, ecx
jle 0x10029dd2
mov dword [0x101b8150], eax
mov dword [0x101b8148], ecx
mov esi, 0x101b8158
mov edi, eax
mov dword [0x101b8154], ecx
cmp esi, ecx
je 0x10029ed5
mov ecx, dword [esi]
push 0
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
jmp 0x10029ed5
push 0x1d
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor esi, esi
mov ebx, 0x101b8154
lea edi, [esi + 1]
call fcn.10006de0
mov eax, dword [0x101b8150]
xor ecx, ecx
cmp eax, ecx
jle 0x10029e17
sub eax, edi
jmp 0x10029e19
add eax, edi
mov dword [0x101b8150], eax
cmp eax, ecx
jne 0x10029e5c
cmp dword [0x101b814c], ecx
jle 0x10029e41
sub dword [0x101b814c], edi
mov dword [0x101b8150], 0xffffffff
mov esi, 0x101b815c
jmp 0x10029e5c
mov eax, dword [0x101b8148]
cmp eax, ecx
jle 0x10029e5c
mov dword [0x101b8150], eax
mov dword [0x101b8148], ecx
mov esi, 0x101b8158
mov edi, eax
mov dword [0x101b8154], ecx
cmp esi, ecx
je 0x10029ed5
mov edx, dword [esi]
push 0
push edi
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
jmp 0x10029ed5
inc eax
mov dword [0x101b8150], eax
cmp eax, ecx
jne 0x10029eb8
cmp dword [0x101b814c], ecx
jle 0x10029e9d
dec dword [0x101b814c]
mov dword [0x101b8150], 0xffffffff
mov esi, 0x101b815c
jmp 0x10029eb8
mov eax, dword [0x101b8148]
cmp eax, ecx
jle 0x10029eb8
mov dword [0x101b8150], eax
mov dword [0x101b8148], ecx
mov esi, 0x101b8158
mov edi, eax
mov dword [0x101b8154], ecx
cmp esi, ecx
je 0x10029ecd
mov eax, dword [esi]
push ecx
push edi
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov dword [esp + 0x18], 1
mov eax, dword [esp + 0xc]
test eax, eax
je 0x10029ee6
push eax
call fcn.1011ed98
add esp, 4
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4