Function at 0x4153b0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push 0xffffffffffffffff
push 0x41b298
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov ebp, ecx
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax - 0xc]
xor esi, esi
cmp ecx, esi
mov dword [esp + 0x24], esi
je 0x41561e
lea ecx, [esp + 0x2c]
call fcn.00401710
mov ecx, eax
call fcn.00401790
mov ecx, dword [esp + 0x2c]
mov eax, dword [ecx - 0xc]
add eax, 0xfffffffe
cmp eax, esi
jle 0x415411
cmp word [ecx + eax*2], 0x22
je 0x41540f
dec eax
cmp eax, esi
jg 0x415401
jmp 0x415411
mov esi, eax
lea edi, [esi + 1]
push edi
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x34]
call fcn.00401e40
mov eax, dword [eax]
mov esi, dword [ebp + 0xf0]
lea ebx, [ebp + 0xf0]
lea ecx, [eax - 0x10]
sub esi, 0x10
cmp ecx, esi
mov byte [esp + 0x24], 1
je 0x415482
mov edx, dword [esi + 0xc]
test edx, edx
jge 0x415455
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, ebx
call fcn.00401470
jmp 0x415482
push ecx
call fcn.004012c0
mov dword [esp + 0x14], eax
add esp, 4
or ecx, 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x415479
mov ecx, dword [esi]
mov edx, dword [ecx]
push esi
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0x10
mov dword [ebx], eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x24], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4154a5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push 0x20
push 0x22
mov ecx, ebx
call fcn.0040ef30
mov ecx, ebx
call fcn.00401710
mov ecx, eax
call fcn.00401790
push edi
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x34]
call fcn.00403c50
mov eax, dword [eax]
mov esi, dword [ebp + 0xfc]
lea edi, [ebp + 0xfc]
lea ecx, [eax - 0x10]
sub esi, 0x10
cmp ecx, esi
mov byte [esp + 0x24], 2
je 0x41552c
mov edx, dword [esi + 0xc]
test edx, edx
jge 0x4154ff
mov ecx, dword [eax - 0xc]
push ecx
push eax
mov ecx, edi
call fcn.00401470
jmp 0x41552c
push ecx
call fcn.004012c0
mov dword [esp + 0x18], eax
add esp, 4
or ecx, 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x415523
mov ecx, dword [esi]
mov edx, dword [ecx]
push esi
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0x10
mov dword [edi], eax
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x24], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x41554f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, edi
call fcn.00401710
mov ecx, eax
call fcn.00401790
push 0x22
push 0x22
mov ecx, edi
call fcn.0040ee40
mov ecx, eax
call fcn.0040eeb0
mov ecx, edi
call fcn.00401710
mov ecx, eax
call fcn.00401790
mov eax, dword [edi]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x415647
mov esi, dword [sym.imp.MSVCR70.dll_wcslen]
push 0x41e710
call esi
add esp, 4
push eax
push 0x41e710
mov ecx, ebx
call fcn.00401470
push 0x41e710
call esi
add esp, 4
push eax
push 0x41e710
mov ecx, edi
call fcn.00401470
push 0x41e710
lea edi, [ebp + 0xf8]
call esi
add esp, 4
push eax
push 0x41e710
mov ecx, edi
call fcn.00401470
push 0x41e710
lea edi, [ebp + 0x100]
call esi
add esp, 4
push eax
push 0x41e710
mov ecx, edi
call fcn.00401470
push 0x41e710
lea edi, [ebp + 0xec]
call esi
add esp, 4
push eax
push 0x41e710
mov ecx, edi
call fcn.00401470
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov dword [esp + 0x24], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415640
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
xor eax, eax
jmp 0x4157ce
mov eax, dword [edi]
push 0x7e
push eax
call dword [sym.imp.MSVCR70.dll_wcsrchr]
add esp, 8
test eax, eax
jne 0x41565e
or eax, 0xffffffff
jmp 0x415662
sub eax, dword [edi]
sar eax, 1
push eax
lea eax, [esp + 0x18]
push eax
mov ecx, edi
call fcn.00403c50
lea esi, [ebp + 0xf8]
push eax
mov ecx, esi
mov byte [esp + 0x28], 3
call fcn.00401510
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x24], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4156a5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
push esi
lea eax, [ebp + 0xe8]
push eax
lea ecx, [esp + 0x1c]
push ecx
call fcn.00403d00
add esp, 0xc
lea esi, [ebp + 0x100]
push eax
mov ecx, esi
mov byte [esp + 0x28], 4
call fcn.00401510
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x24], 0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4156f0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esi]
push 0x2e
push eax
call dword [sym.imp.MSVCR70.dll_wcsrchr]
add esp, 8
test eax, eax
jne 0x415707
or eax, 0xffffffff
jmp 0x41570b
sub eax, dword [esi]
sar eax, 1
push eax
lea eax, [esp + 0x14]
push eax
mov ecx, esi
call fcn.00401e40
push str..pdf
push eax
lea ecx, [esp + 0x1c]
push ecx
mov byte [esp + 0x30], 5
call fcn.00403db0
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x28], 6
call fcn.00401510
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov byte [esp + 0x24], 5
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x415760
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x24], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x415783
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [ebx]
push ecx
sub eax, 0x10
mov dword [esp + 0x1c], esp
mov esi, esp
push eax
call fcn.004012c0
add eax, 0x10
add esp, 4
mov ecx, ebp
mov dword [esi], eax
call fcn.004122d0
mov esi, eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov dword [esp + 0x24], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4157cc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, esi
mov ecx, dword [esp + 0x1c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x18
ret 4