Function at 0x10023d30
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x1012a2d8
mov eax, dword fs:[0]
push eax
sub esp, 0x30
push ebx
push esi
push edi
mov eax, dword [0x1019f010]
xor eax, esp
push eax
lea eax, [esp + 0x40]
mov dword fs:[0], eax
mov esi, ecx
xor edi, edi
cmp dword [ebp + 8], edi
je 0x10023d93
push 1
push esi
call fcn.100237e0
test eax, eax
jne 0x10023d93
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x10023d93
xor eax, eax
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x10183520
lea eax, [esp + 0x18]
push esi
push eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x20], edi
call fcn.10111b0d
add esp, 0xc
test eax, eax
je 0x10023ded
call fcn.10110458
cmp dword [eax], 2
jne 0x10023dcd
mov eax, 2
push eax
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x100240e3
call fcn.10110458
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 0x100240e3
push edi
call fcn.10110569
add esp, 4
mov ebx, 0x101a4dfc
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
mov dword [esp + 0x30], 0x101a4df0
call fcn.100053f0
cmp dword [0x101a4df4], edi
jne 0x10023e80
cmp dword [0x101a4df8], edi
jl 0x10023e80
xor eax, eax
inc dword [0x101a4df8]
mov dword [0x101a4dfc], edi
test eax, eax
je 0x10023e41
mov ecx, dword [0x101a4e00]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [0x101a4e0c]
mov ebx, dword [eax]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x2c], eax
cmp ebx, eax
jne 0x10023e94
xor esi, esi
mov ebx, 0x101a4dfc
mov dword [esp + 0x48], 0xffffffff
lea edi, [esi + 1]
call fcn.100053f0
mov eax, dword [0x101a4df8]
xor ecx, ecx
cmp eax, ecx
jle 0x10024082
dec eax
jmp 0x10024083
mov eax, 1
add dword [0x101a4df0], eax
jmp 0x10023e28
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0x10]
mov edi, dword [eax]
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], edi
cmp edi, eax
je 0x10023f50
mov eax, dword [edi + 8]
mov ecx, dword [ebx + 8]
mov edx, dword [esp + 0x14]
push eax
push ecx
push str._s__s_n
push edx
call fcn.1010f2b1
add esp, 0x10
test eax, eax
js 0x10023f65
mov eax, dword [edi + 0x10]
mov esi, dword [eax]
mov dword [esp + 0x24], eax
cmp esi, eax
je 0x10023f40
jmp 0x10023ee0
mov edx, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18]
cmp edx, dword [esp + 0x38]
jl 0x10023f36
jg 0x10023ef4
cmp ebx, dword [esp + 0x34]
jbe 0x10023f36
mov eax, dword [esi + 0xc]
cmp byte [eax], 0
jne 0x10023f01
mov eax, 0x1018352c
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 + 0x2c]
push ecx
push str._t_s__s__I64d__d__d__d_n
push eax
call fcn.1010f2b1
add esp, 0x24
test eax, eax
js 0x10023ff7
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
mov esi, dword [esi]
cmp esi, eax
jne 0x10023ee0
mov ebx, dword [esp + 0x18]
mov edi, dword [edi]
mov dword [esp + 0x1c], edi
cmp edi, dword [esp + 0x28]
jne 0x10023ea9
mov eax, dword [ebx]
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x2c]
jne 0x10023e90
jmp 0x10023e54
push 0x1d
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor esi, esi
mov ebx, 0x101a4dfc
mov dword [esp + 0x48], 0xffffffff
lea edi, [esi + 1]
call fcn.100053f0
mov eax, dword [0x101a4df8]
xor ecx, ecx
cmp eax, ecx
jle 0x10023f93
sub eax, edi
jmp 0x10023f95
add eax, edi
mov dword [0x101a4df8], eax
cmp eax, ecx
jne 0x10023fd8
cmp dword [0x101a4df4], ecx
jle 0x10023fbd
sub dword [0x101a4df4], edi
mov dword [0x101a4df8], 0xffffffff
mov esi, 0x101a4e04
jmp 0x10023fd8
mov eax, dword [0x101a4df0]
cmp eax, ecx
jle 0x10023fd8
mov dword [0x101a4df8], eax
mov dword [0x101a4df0], ecx
mov esi, 0x101a4e00
mov edi, eax
mov dword [0x101a4dfc], ecx
cmp esi, ecx
je 0x100240e3
mov ecx, dword [esi]
push 0
push edi
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
jmp 0x100240e3
push 0x1d
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor esi, esi
mov ebx, 0x101a4dfc
mov dword [esp + 0x48], 0xffffffff
lea edi, [esi + 1]
call fcn.100053f0
mov eax, dword [0x101a4df8]
xor ecx, ecx
cmp eax, ecx
jle 0x10024025
sub eax, edi
jmp 0x10024027
add eax, edi
mov dword [0x101a4df8], eax
cmp eax, ecx
jne 0x1002406a
cmp dword [0x101a4df4], ecx
jle 0x1002404f
sub dword [0x101a4df4], edi
mov dword [0x101a4df8], 0xffffffff
mov esi, 0x101a4e04
jmp 0x1002406a
mov eax, dword [0x101a4df0]
cmp eax, ecx
jle 0x1002406a
mov dword [0x101a4df8], eax
mov dword [0x101a4df0], ecx
mov esi, 0x101a4e00
mov edi, eax
mov dword [0x101a4dfc], ecx
cmp esi, ecx
je 0x100240e3
mov edx, dword [esi]
push 0
push edi
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
jmp 0x100240e3
inc eax
mov dword [0x101a4df8], eax
cmp eax, ecx
jne 0x100240c6
cmp dword [0x101a4df4], ecx
jle 0x100240ab
dec dword [0x101a4df4]
mov dword [0x101a4df8], 0xffffffff
mov esi, 0x101a4e04
jmp 0x100240c6
mov eax, dword [0x101a4df0]
cmp eax, ecx
jle 0x100240c6
mov dword [0x101a4df8], eax
mov dword [0x101a4df0], ecx
mov esi, 0x101a4e00
mov edi, eax
mov dword [0x101a4dfc], ecx
cmp esi, ecx
je 0x100240db
mov eax, dword [esi]
push ecx
push edi
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov dword [esp + 0x20], 1
mov eax, dword [esp + 0x14]
test eax, eax
je 0x100240f4
push eax
call fcn.10111d49
add esp, 4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x40]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4