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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 8], 0
xor eax, eax
mov dword [ebp - 0xc], 0xffffffff
mov edi, ecx
mov dword [ebp - 0x14], eax
mov ecx, esi
mov dword [ebp - 0x20], eax
xor bh, bh
call fcn.004a1360
test eax, eax
jne 0x4a2a90
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4a2a81
push 0xffffffffffffffff
xor edx, edx
mov ecx, edi
call fcn.004a2ee0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a2a95
sub ecx, edx
lea eax, [esi - 1]
add eax, ecx
cmp eax, esi
jbe 0x4a2ab1
dec eax
cmp byte [eax], 0x2f
je 0x4a2ab2
cmp eax, esi
ja 0x4a2aa7
dec eax
mov bl, byte [eax + 1]
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
mov byte [ecx], 0
test eax, eax
je 0x4a2ac7
mov byte [eax], bh
mov dword [ebp - 0x14], ecx
mov bh, bl
mov ecx, edi
call fcn.004a28f0
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 4], eax
test eax, eax
jne 0x4a2ae1
cmp ecx, esi
ja 0x4a2a90
inc ecx
mov edx, 0x2f
call fcn.004a1910
mov ecx, edi
mov esi, eax
mov dword [ebp - 0x18], esi
lea edx, [ecx + 1]
test esi, esi
je 0x4a2b23
mov byte [esi], 0
inc esi
mov dword [ebp - 0x18], esi
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a2b01
sub ecx, edx
mov edx, esi
lea esi, [edx + 1]
nop
mov al, byte [edx]
inc edx
test al, al
jne 0x4a2b10
sub edx, esi
add ecx, 0x101
add ecx, edx
jmp 0x4a2b32
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a2b23
sub ecx, edx
add ecx, 0x100
mov esi, dword [ebp - 4]
test esi, esi
je 0x4a2d31
push ecx
call fcn.004ae57a
mov edx, eax
add esp, 4
mov dword [ebp - 8], edx
test edx, edx
je 0x4a2d31
mov ecx, edx
sub ecx, edi
mov al, byte [edi]
lea edi, [edi + 1]
mov byte [ecx + edi - 1], al
test al, al
jne 0x4a2b57
mov edi, edx
lea ecx, [edi + 1]
lea esp, [esp]
mov al, byte [edi]
inc edi
test al, al
jne 0x4a2b70
mov eax, dword [ebp - 0x14]
sub edi, ecx
mov dword [ebp - 0x1c], edi
test eax, eax
je 0x4a2b85
mov byte [eax], bl
mov ebx, dword [ebp - 0x10]
mov ecx, ebx
call fcn.004a1360
test eax, eax
je 0x4a2ba3
mov ecx, esi
call fcn.004a29e0
mov esi, eax
test esi, esi
jne 0x4a2bf3
mov esi, dword [ebp - 4]
or ebx, 0xffffffff
test esi, esi
je 0x4a2bbb
push dword [esi]
call dword [sym.imp.KERNEL32.dll_FindClose]
push esi
call fcn.004ae337
add esp, 4
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x4a2bc6
mov byte [eax - 1], 0x2f
mov eax, dword [ebp - 8]
test eax, eax
je 0x4a2bd6
push eax
call fcn.004ae337
add esp, 4
cmp ebx, 0xffffffff
jne 0x4a2be3
xor eax, eax
cmp dword [ebp - 0x20], eax
cmovne ebx, eax
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x10]
mov ecx, 0x4e3df4
mov eax, esi
lea ebx, [ebx]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4a2c20
test dl, dl
je 0x4a2c1c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4a2c20
add eax, 2
add ecx, 2
test dl, dl
jne 0x4a2c00
xor eax, eax
jmp 0x4a2c25
sbb eax, eax
or eax, 1
test eax, eax
je 0x4a2d2c
mov ecx, 0x4e3df8
mov eax, esi
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4a2c54
test dl, dl
je 0x4a2c50
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4a2c54
add eax, 2
add ecx, 2
test dl, dl
jne 0x4a2c34
xor eax, eax
jmp 0x4a2c59
sbb eax, eax
or eax, 1
test eax, eax
je 0x4a2d2c
push 0
mov edx, esi
mov ecx, ebx
call fcn.004a1710
add esp, 4
test eax, eax
je 0x4a2d2c
mov edx, dword [ebp - 8]
add edi, edx
mov ecx, edi
sub ecx, esi
mov al, byte [esi]
lea esi, [esi + 1]
mov byte [ecx + esi - 1], al
test al, al
jne 0x4a2c80
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x4a2cdf
mov ecx, edx
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a2ca0
sub ecx, edx
mov edx, dword [ebp - 8]
add edx, ecx
mov ecx, ebx
mov byte [edx], 0x2f
inc edx
mov esi, edx
sub esi, ebx
jmp 0x4a2cc0
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [esi + ecx - 1], al
test al, al
jne 0x4a2cc0
mov ecx, dword [ebp - 8]
call fcn.004a2a30
mov esi, dword [ebp - 4]
mov ebx, eax
mov dword [ebp - 0xc], ebx
jmp 0x4a2cf7
mov esi, dword [ebp - 4]
xor edx, edx
mov ecx, dword [ebp - 8]
push dword [esi + 8]
call fcn.004a2ee0
add esp, 4
mov dword [ebp - 0xc], eax
mov ebx, eax
mov byte [edi], 0
test ebx, ebx
jne 0x4a2d22
mov dword [ebp - 0x20], 1
mov edi, dword [ebp - 0x1c]
mov ecx, dword [ebp - 4]
call fcn.004a29e0
mov esi, eax
test esi, esi
jne 0x4a2bf0
mov esi, dword [ebp - 4]
jmp 0x4a2ba6
cmp ebx, 0xffffffff
je 0x4a2d05
jmp 0x4a2ba6
mov ebx, dword [ebp - 0xc]
jmp 0x4a2d08
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x4a2d3a
mov byte [eax], bl
or ebx, 0xffffffff
mov eax, 4
test esi, esi
cmovne ebx, eax
jmp 0x4a2ba6