Function at 0x280a4f65
Capabilities:
Check if file exists
Get disk information
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x148
push ebx
push esi
push edi
call sym.perl510.dll_Perl_get_context
mov edi, dword [ebp + 8]
mov dword [ebp - 4], eax
push edi
call sub.MSVCRT.dll_strlen
push 5
push 0x80
push 0x11
push 0x280bf074
push dword [ebp - 4]
xor ebx, ebx
mov esi, eax
mov dword [ebp - 0xc], 1
mov dword [ebp - 8], ebx
call sym.perl510.dll_Perl_gv_fetchpvn_flags
add esp, 0x18
cmp eax, ebx
je 0x280a500b
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
cmp eax, ebx
je 0x280a500b
mov ecx, dword [eax + 8]
test ch, 4
je 0x280a4fe4
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c], eax
mov eax, dword [eax]
cmp eax, ebx
mov dword [ecx + 0x50], eax
je 0x280a500b
mov eax, dword [eax + 8]
cmp eax, 1
ja 0x280a503e
cmp eax, ebx
je 0x280a500b
mov eax, dword [ecx + 0x4c]
mov eax, dword [eax + 0xc]
cmp byte [eax], 0x30
jmp 0x280a503c
test ch, 1
je 0x280a4ff7
mov eax, dword [eax]
xor ecx, ecx
cmp dword [eax + 0x10], ebx
setne cl
mov eax, ecx
jmp 0x280a503a
test ch, 2
je 0x280a502c
mov eax, dword [eax]
fld qword [eax]
fcomp qword [0x280ac570]
fnstsw ax
sahf
jne 0x280a503e
mov dword [ebp + 8], ebx
cmp esi, 1
jle 0x280a5119
mov al, byte [esi + edi - 1]
cmp al, 0x2f
je 0x280a5090
cmp al, 0x3a
je 0x280a5047
cmp al, 0x5c
je 0x280a5090
jmp 0x280a5119
push eax
push dword [ebp - 4]
call sym.perl510.dll_Perl_sv_2bool
pop ecx
pop ecx
movsx eax, al
cmp eax, ebx
je 0x280a500b
mov dword [ebp + 8], 1
jmp 0x280a500e
cmp esi, 2
jne 0x280a5119
mov al, byte [edi]
cmp al, 0x41
jl 0x280a505a
cmp al, 0x5a
jle 0x280a506a
cmp al, 0x61
jl 0x280a5119
cmp al, 0x7a
jg 0x280a5119
and byte [ebp - 0x111], 0
mov byte [ebp - 0x114], al
mov byte [ebp - 0x113], 0x3a
mov byte [ebp - 0x112], 0x2e
lea edi, [ebp - 0x114]
jmp 0x280a5119
cmp esi, 0x105
jbe 0x280a50a9
call dword [sym.imp.MSVCRT.dll__errno]
mov dword [eax], 0x26
jmp 0x280a5240
dec esi
lea eax, [ebp - 0x114]
push esi
push edi
push eax
call dword [sym.imp.MSVCRT.dll_strncpy]
add esp, 0xc
push 1
pop edx
cmp esi, edx
jle 0x280a50da
lea ecx, [ebp - 0x114]
dec ecx
mov al, byte [ecx + esi]
cmp al, 0x2f
je 0x280a50d5
cmp al, 0x5c
jne 0x280a50da
dec esi
cmp esi, edx
jg 0x280a50ca
cmp esi, 2
jne 0x280a5108
mov al, byte [ebp - 0x114]
cmp al, 0x41
jl 0x280a50ed
cmp al, 0x5a
jle 0x280a50f5
cmp al, 0x61
jl 0x280a5108
cmp al, 0x7a
jg 0x280a5108
cmp byte [ebp - 0x113], 0x3a
jne 0x280a5108
push 3
mov byte [ebp - 0x112], 0x5c
pop esi
and byte [ebp + esi - 0x114], 0
lea edi, [ebp - 0x114]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 4]
push edi
mov eax, dword [eax + 0x88c]
push eax
call dword [eax + 0x24]
mov edi, eax
push edi
call sub.MSVCRT.dll_strlen
mov ebx, eax
xor eax, eax
add esp, 0xc
cmp dword [ebp + 8], eax
jne 0x280a5172
push eax
push eax
push 3
push eax
push eax
push eax
push edi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x280a5172
lea eax, [ebp - 0x148]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
je 0x280a516b
mov eax, dword [ebp - 0x120]
mov dword [ebp - 0xc], eax
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp + 0xc]
push esi
push edi
call dword [sym.imp.MSVCRT.dll__stati64]
pop ecx
mov dword [ebp + 8], eax
pop ecx
mov cx, word [ebp - 0xc]
mov word [esi + 8], cx
xor ecx, ecx
cmp eax, ecx
jge 0x280a51d7
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x280a5269
test bl, 0x10
je 0x280a5269
push 0x30
push 0
push esi
call sub.MSVCRT.dll_memset
add esp, 0xc
mov word [esi + 6], 0x4100
call dword [sym.imp.MSVCRT.dll__errno]
and dword [eax], 0
test bl, 1
jne 0x280a51d0
or byte [esi + 6], 0xc0
xor eax, eax
jmp 0x280a526c
cmp ebx, 3
jne 0x280a5221
mov al, byte [edi]
cmp al, 0x41
jl 0x280a51e6
cmp al, 0x5a
jle 0x280a51ee
cmp al, 0x61
jl 0x280a5221
cmp al, 0x7a
jg 0x280a5221
cmp byte [edi + 1], 0x3a
jne 0x280a5221
mov al, byte [edi + 2]
cmp al, 0x5c
je 0x280a51ff
cmp al, 0x2f
jne 0x280a5221
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
jne 0x280a521f
call dword [sym.imp.MSVCRT.dll__errno]
mov dword [eax], 2
jmp 0x280a5240
xor ecx, ecx
cmp dword [ebp - 8], ecx
je 0x280a5245
mov ax, word [esi + 6]
and ax, 0xf000
cmp ax, 0x4000
je 0x280a5245
call dword [sym.imp.MSVCRT.dll__errno]
mov dword [eax], 0x14
or eax, 0xffffffff
jmp 0x280a526c
mov ax, word [esi + 6]
and ax, 0xf000
cmp ax, 0x4000
jne 0x280a5269
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x280a5269
test al, 1
je 0x280a5269
and word [esi + 6], 0xff7f
mov eax, dword [ebp + 8]
pop edi
pop esi
pop ebx
leave
ret