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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x544
mov eax, dword [0x6aae14]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
push edi
mov edi, dword [ebp + 0xc]
mov byte [ebp - 0x404], 0
test esi, esi
jne 0x412c8e
push str._AVPMAPP__DirAbsent_A_
push esi
call fcn.004f0f30
add esp, 8
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005dfbbe
mov esp, ebp
pop ebp
ret
mov al, byte [esi]
test al, al
jne 0x412cc4
push str._AVPMAPP__DirAbsent_B_
push 0
call fcn.004f0f30
add esp, 8
test edi, edi
je 0x412caa
mov byte [edi], 0
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005dfbbe
mov esp, ebp
pop ebp
ret
cmp al, 0x22
jne 0x412cd1
push esi
call fcn.004e3310
add esp, 4
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
test edi, edi
je 0x412ce0
push esi
push edi
call ebx
push 0x400
lea eax, [ebp - 0x404]
push eax
push esi
mov byte [ebp - 0x404], 0
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
test eax, eax
jne 0x412dcc
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
cmp eax, 0x57
je 0x412d37
cmp eax, 5
je 0x412d37
push eax
push str._AVPMAPP__DirAbsent_C_._RCode:_u
push 0
call fcn.004f0f30
add esp, 0xc
pop ebx
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005dfbbe
mov esp, ebp
pop ebp
ret
push esi
call fcn.004e2520
lea ecx, [ebp - 0x544]
push ecx
push esi
call fcn.004e0820
add esp, 0xc
cmp eax, 0xffffffff
jne 0x412db3
call ebx
push eax
push esi
push str._AVPMAPP__DirAbsent_D____s_._LErr:_u
push 0
call fcn.004f0f30
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x412d99
call ebx
push eax
push esi
push str._AVPMAPP__DirAbsent_D1____s_._LErr:_u
push 0
call fcn.004f0f30
add esp, 0x10
pop ebx
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005dfbbe
mov esp, ebp
pop ebp
ret
push edi
push str._AVPMAPP__DirAbsent_D1__Success__0x_x_.
push 0
call fcn.004f0f30
mov eax, edi
add esp, 0xc
mov dword [ebp - 0x544], eax
jmp 0x412dc0
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [ebp - 0x544]
test al, 0x10
jne 0x412e15
push eax
push str._AVPMAPP__DirAbsent_E_._FileAtt:0x_x
jmp 0x412e31
lea edx, [ebp - 0x404]
push edx
push esi
call ebx
lea eax, [ebp - 0x404]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x412e11
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._AVPMAPP__DirAbsent_F_._LErr:_u
push 0
call fcn.004f0f30
add esp, 0xc
pop ebx
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005dfbbe
mov esp, ebp
pop ebp
ret
test al, 0x10
je 0x412e2b
pop ebx
pop edi
mov eax, 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.005dfbbe
mov esp, ebp
pop ebp
ret
push eax
push str._AVPMAPP__DirAbsent_G_._rval:0x_x
push 0
call fcn.004f0f30
add esp, 0xc
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, dword [ebp - 4]
pop ebx
pop edi
xor ecx, ebp
xor eax, eax
pop esi
call fcn.005dfbbe
mov esp, ebp
pop ebp
ret