Function at 0x40b9f0
Capabilities:
Check if file exists
Create directory
Delete registry value
Set registry value

Disassembly:
push 0xffffffffffffffff
push 0x43c526
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x114
push esi
push edi
mov esi, ecx
push 1
call sub.MFC42.DLL_CWnd::UpdateData
mov eax, dword [esi + 0x360]
push 0
push 0
push 0xf0
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [esp + 8]
mov dword [esp + 0x14], eax
call sub.MFC42.DLL_CString::CString_3
mov cl, byte [0x451020]
xor eax, eax
mov byte [esp + 0x18], cl
mov ecx, 0x40
lea edi, [esp + 0x19]
lea edx, [esp + 0x18]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
push 0x104
push edx
push 0
mov dword [esp + 0x130], 0
stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x18]
push str...hotfix
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
lea ecx, [esp + 8]
push ecx
lea ecx, [esi + 0x3c0]
call sub.MFC42.DLL_CWnd::GetWindowTextA_1
mov edx, dword [esp + 8]
push edx
call dword [sym.imp.SHLWAPI.dll_PathIsDirectoryA]
test eax, eax
jne 0x40baed
push 2
push 1
push 0x165
push 0x164
push 0x163
push esi
call fcn.0040eca0
add esp, 0x18
cmp eax, 2
jne 0x40baed
lea ecx, [esp + 8]
mov dword [esp + 0x124], 0xffffffff
call sub.MFC42.DLL_CString::CString
pop edi
xor eax, eax
pop esi
mov ecx, dword [esp + 0x114]
mov dword fs:[0], ecx
add esp, 0x120
ret
mov edi, dword [sym.imp.SHLWAPI.dll_SHSetValueA]
lea eax, [esp + 0x14]
push 4
push eax
push 4
push str.SaveFile
push str.SOFTWARE360SafeLeak
push reloc.OLEAUT32.dll_SysReAllocString
call edi
lea ecx, [esi + 0x5b0]
push 4
push ecx
push 4
push str.MoveFile
push str.SOFTWARE360SafeLeak
push reloc.OLEAUT32.dll_SysReAllocString
call edi
mov edx, dword [esp + 8]
lea eax, [esp + 0x18]
push edx
push eax
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x40bb97
push str.SavePath
push str.SOFTWARE360SafeLeak
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueA]
lea ecx, [esp + 8]
mov edi, 1
push ecx
lea ecx, [esi + 0x5b8]
call fcn.0043a7b6
lea ecx, [esp + 8]
mov dword [esp + 0x124], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x11c]
mov eax, edi
pop edi
pop esi
mov dword fs:[0], ecx
add esp, 0x120
ret
mov ecx, dword [esp + 8]
push 0
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectoryExA]
cmp eax, 0xa1
je 0x40bc47
push ebx
lea edx, [esp + 0x14]
push 2
push edx
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
mov eax, dword [eax]
mov byte [esp + 0x128], 1
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
test eax, eax
jne 0x40bc0e
lea eax, [esp + 0x10]
push 2
push eax
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::Left
mov eax, dword [eax]
push 0x450458
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
lea ecx, [esp + 0x10]
test eax, eax
setne bl
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x40bc0e
mov bl, 1
jmp 0x40bc10
xor bl, bl
lea ecx, [esp + 0x14]
mov byte [esp + 0x128], 0
call sub.MFC42.DLL_CString::CString
test bl, bl
pop ebx
jne 0x40bc47
mov eax, dword [esp + 8]
mov ecx, dword [eax - 8]
push ecx
push eax
push 1
push str.SavePath
push str.SOFTWARE360SafeLeak
push reloc.OLEAUT32.dll_SysReAllocString
call edi
jmp 0x40bb55
push 0
push 0xa7
call fcn.004232b0
mov ecx, eax
call fcn.00423b90
push eax
push esi
call fcn.0040eeb0
add esp, 8
xor edi, edi
jmp 0x40bb6a