Function at 0x40451d
Capabilities:
Check if file exists
Create directory
Get common file path

Disassembly:
push 0x580
mov eax, 0x41c588
call fcn.00417909
mov eax, dword [ebp + 8]
xor ebx, ebx
mov esi, 0x206
push esi
mov dword [ebp - 0x554], eax
lea eax, [ebp - 0x422]
mov edi, ecx
push ebx
push eax
mov dword [ebp - 0x550], edi
mov dword [ebp - 0x540], ebx
mov word [ebp - 0x424], bx
call sub.MSVCR80.dll_memset
add esp, 0xc
lea eax, [ebp - 0x548]
push eax
mov dword [ebp - fcn.0040a75b], 0x423d88
mov dword [ebp - 0x544], ebx
call fcn.0040a75b
push esi
lea eax, [ebp - 0x21a]
push ebx
push eax
mov word [ebp - 0x21c], bx
call sub.MSVCR80.dll_memset
add esp, 0xc
push 0x110
lea eax, [ebp - 0x538]
push ebx
mov esi, 0x104
push eax
mov dword [ebp - 0x54c], esi
mov dword [ebp - 0x53c], ebx
call sub.MSVCR80.dll_memset
add esp, 0xc
push esi
lea eax, [ebp - 0x424]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
cmp eax, ebx
je 0x4047d6
lea eax, [ebp - 0x424]
lea esi, [edi + 0x3c]
push eax
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
push ebx
mov edi, 0x4221f4
push edi
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_unsigned_int___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::find_wchar_t_const___unsigned_int_const]
mov ecx, dword [sym.imp.MSVCP80.dll_unsigned_int_const_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::npos]
mov ecx, dword [ecx]
cmp eax, ecx
je 0x4047d6
push ecx
inc eax
push eax
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::erase_unsigned_int__unsigned_int_]
push eax
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
push str.QMBackup
mov ecx, esi
call dword [0x41d224]
push edi
mov ecx, esi
call dword [0x41d224]
cmp dword [esi + 0x18], 8
jb 0x404638
mov eax, dword [esi + 4]
jmp 0x40463b
lea eax, [esi + 4]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, ebx
jne 0x40466a
cmp dword [esi + 0x18], 8
jb 0x404651
mov eax, dword [esi + 4]
jmp 0x404654
lea eax, [esi + 4]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp eax, ebx
mov dword [ebp - 0x540], eax
je 0x4047d6
push 0x423340
lea eax, [ebp - 0x58c]
push esi
push eax
call dword [sym.imp.MSVCP80.dll_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_std::operator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___wchar_t_const__]
add esp, 0xc
push eax
mov ecx, esi
mov dword [ebp - 4], ebx
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x58c]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
cmp dword [esi + 0x18], 8
jb 0x4046a7
mov esi, dword [esi + 4]
jmp 0x4046aa
add esi, 4
push esi
lea ecx, [ebp - 0x570]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
mov esi, dword [ebp - 0x550]
lea edi, [esi + 0x18]
lea eax, [ebp - 0x570]
mov dword [ebp - 4], 1
call fcn.0040408e
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x570]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea eax, [ebp - 0x54c]
push eax
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x548]
push eax
call fcn.0040ab2a
test eax, eax
jge 0x404728
call fcn.0041ab80
test al, al
je 0x40471d
push str._InitOperateFile__GetCurrentOSTagName_return_failed
push 0xb
push str.D:jenkins_Trunkworkspace10.6Patch_SourceJobqqpcmgr_projBlueRayFTSafeAppQMBlueScreenFixerQMOperateFile.cpp
call fcn.0041af50
add esp, 0xc
mov dword [ebp - 0x540], ebx
jmp 0x4047d6
lea eax, [ebp - 0x21c]
lea edi, [esi + 0x58]
push eax
mov ecx, edi
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
lea eax, [ebp - 0x53c]
push eax
mov dword [ebp - 0x53c], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp eax, ebx
mov dword [ebp - 0x540], eax
jne 0x40476b
call fcn.0041ab80
test al, al
je 0x4047d6
push str._InitOperateFile__GetVersionExW_return_failed
jmp 0x4047c7
mov eax, dword [ebp - 0x538]
mov dword [esi + 0x74], eax
call fcn.0041ab80
test al, al
je 0x4047a3
cmp dword [edi + 0x18], 8
jb 0x404788
mov edi, dword [edi + 4]
jmp 0x40478b
add edi, 4
push dword [esi + 0x74]
push edi
push str._InitOperateFile__SystemTag___s__dwOSVersion___d
push 0xb
push str.D:jenkins_Trunkworkspace10.6Patch_SourceJobqqpcmgr_projBlueRayFTSafeAppQMBlueScreenFixerQMOperateFile.cpp
call fcn.0041af50
add esp, 0x14
mov ecx, dword [ebp - 0x554]
push esi
call fcn.004047e4
cmp eax, ebx
mov dword [ebp - 0x540], eax
jne 0x4047d6
call fcn.0041ab80
test al, al
je 0x4047d6
push str._InitOperateFile__AnalyzeKBListFile_return_false
push 0xb
push str.D:jenkins_Trunkworkspace10.6Patch_SourceJobqqpcmgr_projBlueRayFTSafeAppQMBlueScreenFixerQMOperateFile.cpp
call fcn.0041af50
add esp, 0xc
mov eax, dword [ebp - 0x540]
call fcn.00417953
ret 4