Function at 0x40826b
Capabilities:
Check if file exists
Delete directory
Enumerate files on windows
Enumerate files recursively
Get file attributes
Get file system object information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x59c
lea ecx, [ebp - 0x14c]
call sub.MFC42.DLL_CString::CString_2
mov dword [ebp - 0x148], 0
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
jne 0x4082eb
push 0x400
push 0x160
lea ecx, [ebp - 0x2ac]
push ecx
push 0x80
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoA]
mov eax, dword [ebp - 0x2a4]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
jne 0x4082eb
mov dword [ebp - 0x550], 1
lea ecx, [ebp - 0x14c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x550]
jmp 0x408861
cmp dword [ebp - 4], 0
jne 0x4083bb
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x3f4]
call sub.MFC42.DLL_CString::CString_3
push 0x480cec
lea edx, [ebp - 0x3f4]
push edx
lea eax, [ebp - 0x554]
push eax
call sub.MFC42.DLL_operator_2
push eax
lea ecx, [ebp - 0x3f4]
call sub.MFC42.DLL_CString::operator_1
lea ecx, [ebp - 0x554]
call sub.MFC42.DLL_CString::CString
push 0x480cf0
push 0x480cf4
lea ecx, [ebp - 0x3f4]
call sub.MFC42.DLL_CString::Replace
lea ecx, [ebp - 0x3ec]
push ecx
push 0x480cf8
lea edx, [ebp - 0x3f4]
push edx
lea eax, [ebp - 0x558]
push eax
call sub.MFC42.DLL_operator_2
mov ecx, eax
call fcn.004190e0
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x3f0], eax
lea ecx, [ebp - 0x558]
call sub.MFC42.DLL_CString::CString
cmp dword [ebp - 0x3f0], 0xffffffff
je 0x4083b0
mov ecx, dword [ebp - 0x3ec]
and ecx, 0x10
test ecx, ecx
je 0x4083a3
mov dword [ebp - 4], 0x10
mov edx, dword [ebp - 0x3f0]
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [ebp - 0x3f4]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 4]
and eax, 0x10
test eax, eax
je 0x40878c
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x53c]
call sub.MFC42.DLL_CString::CString_3
push 0x480cfc
lea edx, [ebp - 0x53c]
push edx
lea eax, [ebp - 0x55c]
push eax
call sub.MFC42.DLL_operator_2
push eax
lea ecx, [ebp - 0x53c]
call sub.MFC42.DLL_CString::operator_1
lea ecx, [ebp - 0x55c]
call sub.MFC42.DLL_CString::CString
push 0x480d00
push 0x480d04
lea ecx, [ebp - 0x53c]
call sub.MFC42.DLL_CString::Replace
lea ecx, [ebp - 0x540]
call sub.MFC42.DLL_CString::CString_2
lea ecx, [ebp - 0x534]
push ecx
push 0x480d08
lea edx, [ebp - 0x53c]
push edx
lea eax, [ebp - 0x560]
push eax
call sub.MFC42.DLL_operator_2
mov ecx, eax
call fcn.004190e0
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x538], eax
lea ecx, [ebp - 0x560]
call sub.MFC42.DLL_CString::CString
cmp dword [ebp - 0x538], 0xffffffff
je 0x408767
lea ecx, [ebp - 0x534]
push ecx
mov edx, dword [ebp - 0x538]
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
je 0x40875a
xor eax, eax
mov al, byte [0x49675c]
test eax, eax
je 0x40849e
jmp 0x40875a
mov ecx, dword [ebp - 0x534]
and ecx, 0x10
test ecx, ecx
je 0x408614
mov edx, dword [ebp + 0x10]
and edx, 0xff
test edx, edx
je 0x40860f
lea ecx, [ebp - 0x544]
call sub.MFC42.DLL_CString::CString_2
lea eax, [ebp - 0x508]
push eax
lea ecx, [ebp - 0x544]
call sub.MFC42.DLL_CString::operator_2
push 0x480d0c
lea ecx, [ebp - 0x544]
push ecx
call fcn.00406050
and eax, 0xff
test eax, eax
je 0x408604
push 0x480d10
lea edx, [ebp - 0x544]
push edx
call fcn.00406050
and eax, 0xff
test eax, eax
je 0x408604
push 0x480d14
lea ecx, [ebp - 0x568]
call sub.MFC42.DLL_CString::CString_3
mov ecx, eax
call fcn.004190e0
push eax
lea ecx, [ebp - 0x53c]
call sub.MFC42.DLL_CString::Find_1
cmp eax, 0xffffffff
jne 0x408599
push 0x480d20
lea ecx, [ebp - 0x570]
call sub.MFC42.DLL_CString::CString_3
mov ecx, eax
call fcn.004190e0
push eax
lea ecx, [ebp - 0x53c]
call sub.MFC42.DLL_CString::Find_1
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
mov byte [ebp - 0x56c], cl
lea ecx, [ebp - 0x570]
call sub.MFC42.DLL_CString::CString
mov edx, dword [ebp - 0x56c]
and edx, 0xff
test edx, edx
jne 0x408599
mov dword [ebp - 0x598], 0
jmp 0x4085a3
mov dword [ebp - 0x598], 1
mov al, byte [ebp - 0x598]
mov byte [ebp - 0x564], al
lea ecx, [ebp - 0x568]
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp - 0x564]
and ecx, 0xff
test ecx, ecx
je 0x408604
mov dl, byte [ebp + 0x10]
push edx
mov al, byte [ebp + 0xc]
push eax
lea ecx, [ebp - 0x508]
push ecx
lea edx, [ebp - 0x53c]
push edx
lea eax, [ebp - 0x574]
push eax
call sub.MFC42.DLL_operator_2
mov ecx, eax
call fcn.004190e0
push eax
call fcn.0040826b
lea ecx, [ebp - 0x574]
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x544]
call sub.MFC42.DLL_CString::CString
jmp 0x408755
lea ecx, [ebp - 0x508]
push ecx
lea edx, [ebp - 0x53c]
push edx
lea eax, [ebp - 0x548]
push eax
call sub.MFC42.DLL_operator_2
push 0x480d2c
push 0x480d30
lea ecx, [ebp - 0x548]
call sub.MFC42.DLL_CString::Replace
push 0x480d34
lea ecx, [ebp - 0x57c]
call sub.MFC42.DLL_CString::CString_3
mov ecx, eax
call fcn.004190e0
push eax
lea ecx, [ebp - 0x548]
call sub.MFC42.DLL_CString::Find_1
cmp eax, 0xffffffff
jne 0x4086c3
push str.ZkQrCode
lea ecx, [ebp - 0x584]
call sub.MFC42.DLL_CString::CString_3
mov ecx, eax
call fcn.004190e0
push eax
lea ecx, [ebp - 0x548]
call sub.MFC42.DLL_CString::Find_1
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
mov byte [ebp - 0x580], cl
lea ecx, [ebp - 0x584]
call sub.MFC42.DLL_CString::CString
mov edx, dword [ebp - 0x580]
and edx, 0xff
test edx, edx
jne 0x4086c3
mov dword [ebp - 0x59c], 0
jmp 0x4086cd
mov dword [ebp - 0x59c], 1
mov al, byte [ebp - 0x59c]
mov byte [ebp - 0x578], al
lea ecx, [ebp - 0x57c]
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp - 0x578]
and ecx, 0xff
test ecx, ecx
je 0x40874a
lea ecx, [ebp - 0x548]
call fcn.004190e0
push eax
lea edx, [ebp - 0x534]
push edx
call fcn.0040738d
add esp, 8
mov eax, dword [ebp + 0xc]
and eax, 0xff
test eax, eax
je 0x40874a
lea ecx, [ebp - 0x508]
push ecx
lea ecx, [ebp - 0x548]
call sub.MFC42.DLL_CString::operator_2
push ecx
mov ecx, esp
mov dword [ebp - 0x588], esp
lea edx, [ebp - 0x548]
push edx
call sub.MFC42.DLL_CString::CString_1
call fcn.004078f4
add esp, 4
lea ecx, [ebp - 0x548]
call sub.MFC42.DLL_CString::CString
jmp 0x408472
mov eax, dword [ebp - 0x538]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea ecx, [ebp - 0x540]
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x53c]
call sub.MFC42.DLL_CString::CString
jmp 0x408833
lea edx, [ebp - 0x144]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x148], eax
cmp dword [ebp - 0x148], 0xffffffff
jne 0x4087cc
mov dword [ebp - 0x58c], 0
lea ecx, [ebp - 0x14c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x58c]
jmp 0x408861
mov ecx, dword [ebp - 0x148]
push ecx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x144]
push eax
call fcn.0040738d
add esp, 8
mov ecx, dword [ebp + 0xc]
and ecx, 0xff
test ecx, ecx
je 0x408833
lea edx, [ebp - 0x118]
push edx
lea ecx, [ebp - 0x54c]
call sub.MFC42.DLL_CString::CString_3
push ecx
mov ecx, esp
mov dword [ebp - 0x590], esp
lea eax, [ebp - 0x54c]
push eax
call sub.MFC42.DLL_CString::CString_1
call fcn.004078f4
add esp, 4
lea ecx, [ebp - 0x54c]
call sub.MFC42.DLL_CString::CString
push 0
mov ecx, dword [ebp + 8]
push ecx
push 0x2001
push 4
call dword [sym.imp.SHELL32.dll_SHChangeNotify]
mov dword [ebp - 0x594], 1
lea ecx, [ebp - 0x14c]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x594]
mov esp, ebp
pop ebp
ret 0xc