Function at 0x4df5e0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x601492
mov eax, dword fs:[0]
push eax
sub esp, 0x2c
push ebx
push esi
push edi
mov eax, dword [0x6b000c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x28], edx
mov ebx, ecx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], 0
call fcn.0040bf10
mov ecx, eax
test ecx, ecx
je 0x4dfaba
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x18], 1
call fcn.0040bf10
mov ecx, eax
test ecx, ecx
je 0x4dfac4
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 3
call fcn.0040bf10
mov ecx, eax
test ecx, ecx
je 0x4dface
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x14], esi
mov byte [ebp - 4], 5
call fcn.0040bf10
mov ecx, eax
test ecx, ecx
je 0x4dfad8
mov eax, dword [ecx]
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x24], edi
mov byte [ebp - 4], 7
call fcn.0040bf10
mov ecx, eax
test ecx, ecx
je 0x4dfae2
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x34]
push dword [ebp - 0x28]
call fcn.0040c380
mov byte [ebp - 4], 0xa
or ebx, 0xffffffff
mov edx, dword [eax]
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
mov dword [ebp - 0x30], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x28], eax
lea eax, [edx - 0x10]
cmp eax, ecx
je 0x4df738
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x2c], eax
jl 0x4df72c
mov eax, dword [edx - 0x10]
cmp eax, dword [ecx]
jne 0x4df72c
mov ecx, dword [ebp - 0x28]
call fcn.0040c950
mov edx, dword [ebp - 0x2c]
mov ecx, ebx
mov dword [ebp - 0x28], eax
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4df724
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x28]
add eax, 0x10
mov dword [ebp - 0x10], eax
jmp 0x4df738
push dword [edx - 0xc]
lea ecx, [ebp - 0x10]
push edx
call fcn.0040c9d0
mov byte [ebp - 4], 9
mov eax, ebx
mov edx, dword [ebp - 0x34]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4df756
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp + 8]
lea ecx, [ebp - 0x2c]
call fcn.0040c380
mov byte [ebp - 4], 0xc
lea ecx, [esi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x30], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x34], eax
cmp eax, ecx
je 0x4df7c1
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x4df7b2
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x4df7b2
mov ecx, dword [ebp - 0x34]
call fcn.0040c950
mov dword [ebp - 0x34], eax
mov ecx, ebx
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x4df7aa
mov esi, dword [ebp - 0x30]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x34]
lea esi, [eax + 0x10]
mov dword [ebp - 0x14], esi
jmp 0x4df7c1
push dword [edx - 0xc]
lea ecx, [ebp - 0x14]
push edx
call fcn.0040c9d0
mov esi, dword [ebp - 0x14]
mov byte [ebp - 4], 9
mov eax, ebx
mov edx, dword [ebp - 0x2c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4df7df
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 1
lea eax, [ebp - 0x34]
push eax
lea ecx, [ebp - 0x14]
call fcn.004e2dd0
mov byte [ebp - 4], 0xe
mov ecx, 0x64f4f8
mov eax, dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4df823
test dx, dx
je 0x4df81a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4df823
add eax, 4
add ecx, 4
test dx, dx
jne 0x4df7f8
mov dword [ebp - 0x28], 0
jmp 0x4df82b
sbb ecx, ecx
or ecx, 1
mov dword [ebp - 0x28], ecx
mov byte [ebp - 4], 9
mov eax, ebx
mov edx, dword [ebp - 0x34]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4df849
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [ebp - 0x28], 0
je 0x4df861
push 1
push 0x64f4f8
lea ecx, [ebp - 0x14]
call fcn.0040ceb0
mov esi, dword [ebp - 0x14]
push 0x2e
push dword [ebp - 0x10]
call fcn.005884c3
add esp, 8
test eax, eax
jne 0x4df877
or eax, 0xffffffff
jmp 0x4df87c
sub eax, dword [ebp - 0x10]
sar eax, 1
push eax
mov dword [ebp - 0x28], eax
lea ecx, [ebp - 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.0046c6c0
mov byte [ebp - 4], 0x10
mov edx, dword [eax]
lea ecx, [edx - 0x10]
mov dword [ebp - 0x34], ecx
lea eax, [edx - 0x10]
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
mov dword [ebp - 0x2c], ecx
cmp eax, ecx
je 0x4df8f6
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x30], eax
jl 0x4df8ea
mov eax, dword [edx - 0x10]
cmp eax, dword [ecx]
jne 0x4df8ea
mov ecx, dword [ebp - 0x34]
call fcn.0040c950
mov dword [ebp - 0x34], eax
mov ecx, ebx
mov eax, dword [ebp - 0x30]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4df8df
mov eax, dword [ebp - 0x2c]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x34]
add eax, 0x10
mov dword [ebp - 0x1c], eax
jmp 0x4df8f6
push dword [edx - 0xc]
lea ecx, [ebp - 0x1c]
push edx
call fcn.0040c9d0
mov byte [ebp - 4], 9
mov eax, ebx
mov edx, dword [ebp - 0x38]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4df914
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x10]
lea ecx, [ebp - 0x10]
mov eax, dword [eax - 0xc]
sub eax, dword [ebp - 0x28]
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.004e2dd0
mov byte [ebp - 4], 0x12
lea ecx, [edi - 0x10]
mov edx, dword [eax]
mov dword [ebp - 0x34], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x38], eax
cmp eax, ecx
je 0x4df98a
cmp dword [ecx + 0xc], 0
lea edi, [ecx + 0xc]
jl 0x4df97b
mov eax, dword [eax]
cmp eax, dword [ecx]
jne 0x4df97b
mov ecx, dword [ebp - 0x38]
call fcn.0040c950
mov dword [ebp - 0x38], eax
mov ecx, ebx
lock xadd dword [edi], ecx
dec ecx
test ecx, ecx
jg 0x4df973
mov edi, dword [ebp - 0x34]
push edi
mov ecx, dword [edi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x38]
lea edi, [eax + 0x10]
mov dword [ebp - 0x24], edi
jmp 0x4df98a
push dword [edx - 0xc]
lea ecx, [ebp - 0x24]
push edx
call fcn.0040c9d0
mov edi, dword [ebp - 0x24]
mov byte [ebp - 4], 9
mov eax, ebx
mov edx, dword [ebp - 0x30]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4df9a8
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebp - 0x10]
push esi
push 0x65920c
push dword [ebp - 0x20]
call fcn.0040d300
mov eax, dword [ebp - 0x20]
add esp, 0x10
mov dword [ebp - 0x28], 1
push dword [eax]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4dfa32
mov byte [ebp - 4], 0x14
lea edx, [ebp - 0x1c]
push 0x5f
lea ecx, [ebp - 0x38]
call fcn.004db4a0
or dword [ebp - 0x18], 2
push edi
push dword [ebp - 0x28]
push dword [eax]
push esi
push str._s_s__d__s
push dword [ebp - 0x20]
call fcn.0040d300
and dword [ebp - 0x18], 0xfffffffd
add esp, 0x1c
mov byte [ebp - 4], 9
mov eax, ebx
mov edx, dword [ebp - 0x38]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4dfa20
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x20]
inc dword [ebp - 0x28]
push dword [eax]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4df9d2
mov byte [ebp - 4], 7
mov eax, ebx
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4dfa50
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 5
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x4dfa6b
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 3
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4dfa86
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x1c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x4dfaa5
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.0040b250
push 0x80004005
call fcn.0040b250
push 0x80004005
call fcn.0040b250
push 0x80004005
call fcn.0040b250
push 0x80004005
call fcn.0040b250
int3