Function at 0x403380
Capabilities:
Access peb ldr_data
Create process on windows
Get common file path

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4128f3
push eax
mov eax, 0x4f5c
mov dword fs:[0], esp
call fcn.00412350
lea eax, [esp + 0x4f78]
push str.VeqicsTemplate.reg
lea ecx, [esp + 8]
push eax
push ecx
mov dword [esp + 0x4f70], 3
call sub.MFC42.DLL_operator
lea edx, [esp + 0x4f78]
push str.VeqicsUser.reg
lea eax, [esp + 0xc]
push edx
push eax
mov byte [esp + 0x4f70], 4
call sub.MFC42.DLL_operator
lea ecx, [esp + 4]
mov byte [esp + 0x4f64], 5
push ecx
call fcn.00403d30
add esp, 4
test al, al
jne 0x40349f
push 0
push 0x415138
push 0x4153b8
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 8]
mov byte [esp + 0x4f64], 4
call fcn.00412128
lea ecx, [esp + 4]
mov byte [esp + 0x4f64], 3
call fcn.00412128
lea ecx, [esp + 0x4f6c]
mov byte [esp + 0x4f64], 2
call fcn.00412128
lea ecx, [esp + 0x4f70]
mov byte [esp + 0x4f64], 1
call fcn.00412128
lea ecx, [esp + 0x4f74]
mov byte [esp + 0x4f64], 0
call fcn.00412128
lea ecx, [esp + 0x4f78]
mov dword [esp + 0x4f64], 0xffffffff
call fcn.00412128
xor al, al
mov ecx, dword [esp + 0x4f5c]
mov dword fs:[0], ecx
add esp, 0x4f68
ret 0x10
push edi
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CFile::CFile
lea ecx, [esp + 0x30]
mov byte [esp + 0x4f68], 6
call sub.MFC42.DLL_CFile::CFile
mov edx, dword [esp + 8]
push 0
push 0
push edx
lea ecx, [esp + 0x2c]
mov byte [esp + 0x4f74], 7
call sub.MFC42.DLL_CFile::Open
mov eax, dword [esp + 0xc]
push 0
push 0x1002
push eax
lea ecx, [esp + 0x3c]
call sub.MFC42.DLL_CFile::Open
mov ecx, 0x1388
xor eax, eax
lea edi, [esp + 0x140]
push 0x4e20
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x144]
push ecx
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CFile::Read
lea edx, [esp + 0x140]
lea ecx, [esp + 4]
push edx
call sub.MFC42.DLL_CString::CString_2
lea eax, [esp + 0x40]
push 0x100
push eax
mov byte [esp + 0x4f70], 8
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea ecx, [esp + 0x4f70]
push ecx
call fcn.00403350
lea edx, [esp + 0x4f7c]
push edx
call fcn.00403350
lea eax, [esp + 0x4f84]
push eax
call fcn.00403350
lea ecx, [esp + 0x4f80]
push ecx
call fcn.00403350
add esp, 0x10
lea edx, [esp + 0x40]
lea ecx, [esp + 0x10]
push edx
call sub.MFC42.DLL_CString::CString_2
lea eax, [esp + 0x10]
mov byte [esp + 0x4f68], 9
push eax
call fcn.00403350
add esp, 4
lea ecx, [esp + 0x1c]
push str.R15.0
call sub.MFC42.DLL_CString::CString_2
mov ecx, dword [esp + 0x4f70]
mov byte [esp + 0x4f68], 0xa
push ecx
push str.__KEY
lea ecx, [esp + 0xc]
call sub.MFC42.DLL_CString::Replace
mov edx, dword [esp + 0x4f78]
lea ecx, [esp + 4]
push edx
push str.__CADPATH
call sub.MFC42.DLL_CString::Replace
mov eax, dword [esp + 0x4f7c]
push eax
push str.__VEQICSPATH
lea ecx, [esp + 0xc]
call sub.MFC42.DLL_CString::Replace
mov ecx, dword [esp + 0x4f74]
push ecx
push str.__VEQICSVER
lea ecx, [esp + 0xc]
call sub.MFC42.DLL_CString::Replace
mov edx, dword [esp + 0x10]
lea ecx, [esp + 4]
push edx
push str.__WIN
call sub.MFC42.DLL_CString::Replace
mov eax, dword [esp + 4]
mov ecx, dword [eax - 8]
inc ecx
push ecx
push eax
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CFile::Write
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CFile::Close
lea ecx, [esp + 0x30]
call sub.MFC42.DLL_CFile::Close
lea eax, [esp + 0xc]
lea ecx, [esp + 0x18]
push eax
push str._s__
push ecx
call sub.MFC42.DLL_operator_2
push 0x22
lea edx, [esp + 0x18]
push eax
push edx
mov byte [esp + 0x4f74], 0xb
call sub.MFC42.DLL_operator_1
lea ecx, [esp + 0x18]
mov byte [esp + 0x4f68], 0xd
call fcn.00412128
mov eax, dword [esp + 0x14]
push 0
push 0
push eax
push str.RegEdit.exe
push 0
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
lea ecx, [esp + 0x14]
mov byte [esp + 0x4f68], 0xa
call fcn.00412128
lea ecx, [esp + 0x1c]
mov byte [esp + 0x4f68], 9
call fcn.00412128
lea ecx, [esp + 0x10]
mov byte [esp + 0x4f68], 8
call fcn.00412128
lea ecx, [esp + 4]
mov byte [esp + 0x4f68], 7
call fcn.00412128
lea ecx, [esp + 0x30]
mov byte [esp + 0x4f68], 6
call fcn.004122a8
lea ecx, [esp + 0x20]
mov byte [esp + 0x4f68], 5
call fcn.004122a8
lea ecx, [esp + 0xc]
mov byte [esp + 0x4f68], 4
call fcn.00412128
lea ecx, [esp + 8]
mov byte [esp + 0x4f68], 3
call fcn.00412128
lea ecx, [esp + 0x4f70]
mov byte [esp + 0x4f68], 2
call fcn.00412128
lea ecx, [esp + 0x4f74]
mov byte [esp + 0x4f68], 1
call fcn.00412128
mov byte [esp + 0x4f68], 0
lea ecx, [esp + 0x4f78]
call fcn.00412128
lea ecx, [esp + 0x4f7c]
mov dword [esp + 0x4f68], 0xffffffff
call fcn.00412128
mov ecx, dword [esp + 0x4f60]
mov al, 1
pop edi
mov dword fs:[0], ecx
add esp, 0x4f68
ret 0x10