Function at 0x42c7f0
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49196c
mov eax, dword fs:[0]
push eax
push ecx
push ebx
push esi
push edi
mov eax, dword [0x4b81bc]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
or ebx, 0xffffffff
test byte [edi + 0xd8], 1
je 0x42c82b
xor esi, esi
jmp 0x42cb28
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
je 0x42c936
lea ecx, [eax - 0x10]
call fcn.004094f0
mov ecx, 1
sub ecx, dword [eax + 0xc]
lea esi, [eax + 0x10]
mov eax, dword [esi - 8]
sub eax, 0x104
mov dword [ebp - 0x10], esi
or eax, ecx
jge 0x42c86a
push 0x104
lea ecx, [ebp - 0x10]
call fcn.004048e0
mov esi, dword [ebp - 0x10]
push esi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push dword [esi - 8]
push esi
call fcn.00473092
add esp, 8
test eax, eax
js 0x42cad2
cmp eax, dword [esi - 8]
jg 0x42cad2
xor ecx, ecx
mov dword [esi - 0xc], eax
push esi
mov word [esi + eax*2], cx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x42c8aa
push esi
push eax
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
mov ecx, dword [edi + 0x70]
test ecx, ecx
je 0x42c8c8
sub esp, 8
push 2
push ecx
push 1
push 0xc0000000
push dword [ebp + 8]
call fcn.00429f70
jmp 0x42c8e3
push 0
push 0x80
push 2
push 0
push 1
push 0xc0000000
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x42c910
call fcn.00406500
test eax, eax
jns 0x42c913
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x42c908
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
or esi, 0xffffffff
jmp 0x42cb28
mov dword [edi + 0x6c], eax
lea eax, [ebp + 8]
lea ecx, [edi + 0x1c]
push eax
call fcn.00409070
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x42c936
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
push 0x42cfc0
push 0x4e2b
push dword [edi + 8]
call fcn.0043ac20
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x42cadc
push edi
push 0x2711
push dword [edi + 8]
call fcn.0043ac20
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x42cadc
push 1
push 0x34
push dword [edi + 8]
call fcn.0043ac20
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x42cadc
push 0x42cf20
push 0x4e6f
push dword [edi + 8]
call fcn.0043ac20
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x42cadc
push edi
push 0x272d
push dword [edi + 8]
call fcn.0043ac20
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x42cadc
push eax
push 0x2b
push dword [edi + 8]
call fcn.0043ac20
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x42cadc
push 0x42ceb0
push 0x4e58
push dword [edi + 8]
call fcn.0043ac20
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x42cadc
push edi
push 0x2749
push dword [edi + 8]
call fcn.0043ac20
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x42cadc
push dword [edi + 0xd0]
push 0x2727
push dword [edi + 8]
call fcn.0043ac20
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x42cadc
push eax
push 0x40
push dword [edi + 8]
call fcn.0043ac20
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x42cadc
push eax
push 0x51
push dword [edi + 8]
call fcn.0043ac20
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x42cadc
mov eax, dword [edi + 0x14]
test eax, eax
je 0x42ca83
push eax
push 0x2728
push dword [edi + 8]
call fcn.0043ac20
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x42cb28
push dword [edi + 8]
or dword [edi + 0xd8], 1
call fcn.0043ac00
mov esi, eax
add esp, 4
test esi, esi
je 0x42cabc
push esi
push 0x4ab1c8
push str.EasyCurl
call fcn.0040d710
push eax
call fcn.0040d770
xor eax, eax
add esp, 0x10
cmp esi, 0x12
cmove esi, eax
cmp dword [ebp + 0xc], 0
je 0x42cb28
cmp dword [edi + 0x1c], 0
je 0x42cb28
lea ecx, [edi + 0x6c]
call fcn.004150e0
jmp 0x42cb28
push 0x80070057
call fcn.00404990
mov dword [ebp - 4], 0
mov ebx, dword [edi + 0xc]
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
mov byte [ebp - 4], 1
test ebx, ebx
je 0x42cb1e
or edi, 0xffffffff
mov eax, edi
lock xadd dword [ebx + 4], eax
jne 0x42cb1e
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
mov eax, edi
lock xadd dword [ebx + 8], eax
jne 0x42cb1e
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
or ebx, 0xffffffff
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lock xadd dword [eax + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x42cb40
mov ecx, dword [eax]
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8