Function at 0x40b3a0
Capabilities:
Access peb ldr_data
Delete file
Get process heap flags
Get process heap force flags

Disassembly:
push 0xffffffffffffffff
push 0x4105b8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c
push ebx
push esi
mov esi, ecx
push 0x415ae8
lea ecx, [esp + 0xc]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x2c], 0
call sub.MFC42.DLL_CStringArray::CStringArray
mov bl, 1
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CStringArray::SetSize
add esi, 0xc
push str.SetUp.exe
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 2
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.LaserCAD.arx
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 3
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str._acad.rx
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 4
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.LaserCAD_04.arx
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 5
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str._acad_04.rx
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 6
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.WHYC.dll
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 7
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str._regsvr32.exe
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 8
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.CorelDRAW11.gms
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 9
call sub.MFC42.DLL_CString::operator
mov byte [esp + 0x2c], bl
lea ecx, [esp + 0xc]
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.CorelDRAW11.gms_CN
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0xa
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.CorelDRAW_11_Bar.cfg
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0xb
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.CorelDRAW_11_Bar.cfg_CN
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0xc
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.CorelDRAW_11_Docker.cfg
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0xd
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.CorelDRAW_11_Docker.cfg_CN
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0xe
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.CorelDRAW_11_GlobalItemProp.cfg
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0xf
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.CorelDRAW_11_GlobalItemProp.cfg_CN
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0x10
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.CorelDRAW_11_ShortCutKeys.cfg
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0x11
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.CorelDRAW_11_ShortCutKeys.cfg_CN
push esi
lea eax, [esp + 0x14]
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0x12
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.DrawUIConfig.xml
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0x13
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.DrawUIConfig.xml_CN
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0x14
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.GlobalMacros.gms
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0x15
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.GlobalMacros.gms_CN
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
mov byte [esp + 0x2c], 0x16
push eax
lea ecx, [esp + 0xc]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.DrawUIConfig_13.xml
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0x17
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.DrawUIConfig_13.xml_CN
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0x18
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.GlobalMacros_13.gms
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0x19
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0xc]
mov byte [esp + 0x2c], bl
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
push str.GlobalMacros_13.gms_CN
lea eax, [esp + 0x10]
push esi
push eax
call sub.MFC42.DLL_operator
push eax
lea ecx, [esp + 0xc]
mov byte [esp + 0x30], 0x1a
call sub.MFC42.DLL_CString::operator
mov byte [esp + 0x2c], bl
lea ecx, [esp + 0xc]
call fcn.0040e8b6
mov edx, dword [esp + 0x18]
lea ecx, [esp + 8]
push ecx
push edx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CStringArray::SetAtGrow
mov eax, dword [esp + 0x18]
xor esi, esi
test eax, eax
jle 0x40ba3d
push edi
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [esp + 0x18]
mov eax, dword [eax + esi*4]
push eax
call edi
mov eax, dword [esp + 0x1c]
inc esi
cmp esi, eax
jl 0x40ba29
pop edi
lea ecx, [esp + 0x10]
mov byte [esp + 0x2c], 0
call fcn.0040e92e
lea ecx, [esp + 8]
mov dword [esp + 0x2c], 0xffffffff
call fcn.0040e8b6
mov ecx, dword [esp + 0x24]
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x28
ret