Function at 0x401000
Capabilities:
Create process on windows
Read .ini file
Set registry value

Disassembly:
mov eax, 0x18b8
call fcn.004027b0
push ebx
push ebp
push esi
push edi
mov ecx, 8
mov esi, str.SOFTWAREBrotherPrinterInstInfo
lea edi, [esp + 0x954]
lea eax, [esp + 0x14c8]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x18cc]
push 0x400
movsw word es:[edi], word [esi]
push eax
push ecx
mov esi, 1
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0x14c8]
lea eax, [esp + 0x9bc]
push edx
push eax
call edi
mov ebp, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea ecx, [esp + 0x9bc]
push ecx
call ebp
dec eax
js 0x40107b
cmp byte [esp + eax + 0x9bc], 0x5c
je 0x4010c9
dec eax
jns 0x40106e
mov ebx, dword [esp + 0x1c]
call fcn.00402760
cmp eax, 1
jne 0x40116b
mov eax, ebx
lea edx, [esp + 0x10c8]
and eax, 0xffff
mov cl, byte [esp + eax + 0x153]
cmp cl, 0x5c
lea ecx, [esp + 0x154]
push ecx
push edx
jne 0x401124
call edi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x10c8]
push str.LauncherStr.dll
push eax
call esi
jmp 0x40113f
mov byte [esp + eax + 0x9bd], 0
lea edx, [esp + 0x9bc]
lea eax, [esp + 0x154]
push edx
push eax
call edi
lea ecx, [esp + 0x154]
push ecx
call ebp
lea edx, [esp + 0x9bc]
mov ebx, eax
push edx
call ebp
sub eax, 2
js 0x40107f
cmp byte [esp + eax + 0x9bc], 0x5c
jne 0x40110f
cmp esi, 1
jne 0x401117
xor esi, esi
dec eax
jns 0x4010fe
jmp 0x40107f
mov byte [esp + eax + 0x9bd], 0
jmp 0x40107f
call edi
lea eax, [esp + 0x10c8]
push str.LaunchStr.dll
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
call fcn.00402520
test eax, eax
jne 0x401171
push 0x10
lea ecx, [esp + 0x10cc]
push 2
push ecx
call fcn.00402680
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18b8
ret 0x10
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
and ebx, 0xffff
cmp byte [esp + ebx + 0x153], 0x5c
jne 0x4011ef
lea edx, [esp + 0x154]
push str.Brinst.ini
push edx
call esi
lea eax, [esp + 0x554]
push str.Installer
push eax
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [esp + 0x154]
push ecx
lea edx, [esp + 0xfc8]
push 0x104
push edx
push str.InstDataName
lea eax, [esp + 0x564]
push str.InstDataName
push eax
call ebx
lea ecx, [esp + 0xfc4]
lea edx, [esp + 0x9bc]
push ecx
push edx
call esi
lea eax, [esp + 0x9bc]
push str.Disk
push eax
jmp 0x40125b
lea ecx, [esp + 0x154]
push 0x407410
push ecx
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [esp + 0x154]
push edx
lea eax, [esp + 0xfc8]
push 0x104
push eax
push str.WebDataName
lea ecx, [esp + 0x564]
push str.WebDataName
push ecx
call ebx
lea edx, [esp + 0x9bc]
push 0x407400
push edx
call esi
lea eax, [esp + 0xfc4]
lea ecx, [esp + 0x9bc]
push eax
push ecx
call esi
lea edx, [esp + 0x9bc]
push str.Disk
push edx
call esi
lea eax, [esp + 0x154]
lea ecx, [esp + 0x28]
push eax
push 0x104
push ecx
push str.SetupDisk
lea edx, [esp + 0x564]
push str.SetupDisk
push edx
call ebx
lea eax, [esp + 0x28]
lea ecx, [esp + 0x9bc]
push eax
push ecx
call esi
lea edx, [esp + 0x9bc]
push str.Setup.exe
push edx
call esi
lea eax, [esp + 0x140]
lea ecx, [esp + 0x10]
push eax
push ecx
push 0
push 0xf003f
push 0
push 0
lea edx, [esp + 0x96c]
push 0
push edx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
test eax, eax
jne 0x4022a9
lea eax, [esp + 0x14c8]
push eax
call ebp
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
lea ecx, [esp + 0x14c8]
mov edx, dword [esp + 0x10]
push eax
push ecx
push 1
push 0
push str.ModulePath
push edx
call esi
lea eax, [esp + 0x554]
push str.Setting
push eax
call edi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x28]
push ecx
push 0x104
push edx
push 0x407a20
lea eax, [esp + 0x564]
push str.AppliTitle
push eax
call ebx
lea ecx, [esp + 0x28]
push ecx
call ebp
lea edx, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
push edx
push 1
push 0
push str.AppliTitle
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x28]
push ecx
push 0x104
push edx
push 0x407a20
lea eax, [esp + 0x564]
push str.CopyDir
push eax
call ebx
lea ecx, [esp + 0x28]
push ecx
call ebp
lea edx, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
push edx
push 1
push 0
push str.CopyDir
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x28]
push ecx
push 0x104
push edx
push 0x407a20
lea eax, [esp + 0x564]
push str.MenuDir
push eax
call ebx
lea ecx, [esp + 0x28]
push ecx
call ebp
lea edx, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
push edx
push 1
push 0
push str.MenuDir
push eax
call esi
lea ecx, [esp + 0x554]
push str.Model
push ecx
call edi
lea edx, [esp + 0x154]
lea eax, [esp + 0x28]
push edx
push 0x104
push eax
push str.Company
lea ecx, [esp + 0x564]
push str.Company
push ecx
call ebx
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.Company
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x12c]
push edx
push 0x104
push eax
push str.NoData
lea ecx, [esp + 0x564]
push str.ModelName
push ecx
call ebx
lea edx, [esp + 0x12c]
push edx
call ebp
push eax
lea eax, [esp + 0x130]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.ModelName
push ecx
call esi
mov edi, dword [sym.imp.KERNEL32.dll_lstrcmpA]
lea edx, [esp + 0x28]
push str.NoData
push edx
call edi
test eax, eax
jne 0x4014a0
lea eax, [esp + 0x12c]
lea ecx, [esp + 0x28]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x4014c3
lea edx, [esp + 0x28]
push 0x407390
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x12c]
lea ecx, [esp + 0x28]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.PrinterName
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x28]
push edx
push 0x104
push eax
push str.ProductID
lea ecx, [esp + 0x564]
push str.ProductID
push ecx
call ebx
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.ProductID
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x28]
push edx
push 0x104
push eax
push str.DeviceID
lea ecx, [esp + 0x564]
push str.DeviceID
push ecx
call ebx
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.DeviceID
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x28]
push edx
push 0x104
push eax
push str.Type
lea ecx, [esp + 0x564]
push str.Type
push ecx
call ebx
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.ModelType
push ecx
call esi
lea edx, [esp + 0x154]
push edx
push 0x104
lea eax, [esp + 0x30]
lea ecx, [esp + 0x55c]
push eax
push str.Twainname
push str.Twainname
push ecx
call ebx
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.TwainName
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x28]
push edx
push 0x104
push eax
push str.Nodata
lea ecx, [esp + 0x564]
push str.9xPrinterInfName
push ecx
call ebx
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.9xPrtInfName
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x28]
push edx
push 0x104
push eax
push str.Nodata
lea ecx, [esp + 0x564]
push str.NtPrinterInfName
push ecx
call ebx
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.NtPrtInfName
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x28]
push edx
push 0x104
push eax
push str.Nodata
lea ecx, [esp + 0x564]
push str.2kXpPrinterInfName
push ecx
call ebx
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
push eax
push 1
push 0
mov ecx, dword [esp + 0x20]
push str.2kXpPrtInfName
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x28]
push edx
push 0x104
push eax
push str.Nodata
lea ecx, [esp + 0x564]
push str.2kXpInfName1
push ecx
call ebx
lea edx, [esp + 0x28]
push str.Nodata
push edx
call edi
test eax, eax
je 0x401708
lea eax, [esp + 0x28]
push eax
call ebp
lea ecx, [esp + 0x28]
push eax
mov edx, dword [esp + 0x14]
push ecx
push 1
push 0
push str.2kXpInfName1
push edx
call esi
lea eax, [esp + 0x154]
lea ecx, [esp + 0x28]
push eax
push 0x104
push ecx
push str.Nodata
lea edx, [esp + 0x564]
push str.2kXpInfName2
push edx
call ebx
lea eax, [esp + 0x28]
push str.Nodata
push eax
call edi
test eax, eax
je 0x40175b
lea ecx, [esp + 0x28]
push ecx
call ebp
lea edx, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
push edx
push 1
push 0
push str.2kXpInfName2
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x28]
push ecx
push 0x104
push edx
push str.Nodata
lea eax, [esp + 0x564]
push str.2kXpInfName3
push eax
call ebx
lea ecx, [esp + 0x28]
push str.Nodata
push ecx
call edi
test eax, eax
je 0x4017ae
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.2kXpInfName3
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x28]
push edx
push 0x104
push eax
push str.Nodata
lea ecx, [esp + 0x564]
push str.2kXpInfName4
push ecx
call ebx
lea edx, [esp + 0x28]
push str.Nodata
push edx
call edi
test eax, eax
je 0x401801
lea eax, [esp + 0x28]
push eax
call ebp
lea ecx, [esp + 0x28]
push eax
mov edx, dword [esp + 0x14]
push ecx
push 1
push 0
push str.2kXpInfName4
push edx
call esi
lea eax, [esp + 0x154]
lea ecx, [esp + 0x28]
push eax
push 0x104
push ecx
push str.Nodata
lea edx, [esp + 0x564]
push str.2kXpInfName5
push edx
call ebx
lea eax, [esp + 0x28]
push str.Nodata
push eax
call edi
test eax, eax
je 0x401854
lea ecx, [esp + 0x28]
push ecx
call ebp
lea edx, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
push edx
push 1
push 0
push str.2kXpInfName5
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x28]
push ecx
push 0x104
push edx
push str.Nodata
lea eax, [esp + 0x564]
push str.9xPrinterUSBInfName
push eax
call ebx
lea ecx, [esp + 0x28]
push ecx
call ebp
lea edx, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
push edx
push 1
push 0
push str.9xPrtUSBInfName
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x28]
push ecx
push 0x104
push edx
push str.Nodata
lea eax, [esp + 0x564]
push str.9xPrinterLPTInfName
push eax
call ebx
lea ecx, [esp + 0x28]
push ecx
call ebp
lea edx, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
push edx
push 1
push 0
push str.9xPrtLPTInfName
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x28]
push ecx
push 0x104
push edx
push str.Nodata
lea eax, [esp + 0x564]
push str.9xModemInfName
push eax
call ebx
lea ecx, [esp + 0x28]
push ecx
call ebp
lea edx, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
push edx
push 1
push 0
push str.9xModemInfName
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x28]
push ecx
push 0x104
push edx
push str.Nodata
lea eax, [esp + 0x564]
push str.9xScannerInfName
push eax
call ebx
lea ecx, [esp + 0x28]
push ecx
call ebp
push eax
lea edx, [esp + 0x2c]
mov eax, dword [esp + 0x14]
push edx
push 1
push 0
push str.9xScannerInfName
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x28]
push ecx
push 0x104
push edx
push str.Nodata
lea eax, [esp + 0x564]
push str.PsInfName
push eax
call ebx
lea ecx, [esp + 0x28]
push ecx
call ebp
lea edx, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
push edx
push 1
push 0
push str.PsInfName
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x28]
push ecx
push 0x104
push edx
push str.Nodata
lea eax, [esp + 0x564]
push str.9xCompositeInfName
push eax
call ebx
lea ecx, [esp + 0x28]
push ecx
call ebp
lea edx, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
push edx
push 1
push 0
push str.9xCompositeInfName
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x28]
push ecx
push 0x104
push edx
push str.Nodata
lea eax, [esp + 0x564]
push str.WebupdateDatName
push eax
call ebx
lea ecx, [esp + 0x28]
push ecx
call ebp
lea edx, [esp + 0x28]
push eax
mov eax, dword [esp + 0x14]
push edx
push 1
push 0
push str.WebupdateDatName
push eax
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
lea ecx, [esp + 0x154]
push ecx
push 0
lea edx, [esp + 0x55c]
push str.InfNumberUsb
push edx
call edi
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push 4
push eax
push 4
push 0
push str.InfNumberUsb
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x554]
push edx
push 0
push str.InfNumberPara
push eax
call edi
lea ecx, [esp + 0x18]
push 4
mov edx, dword [esp + 0x14]
push ecx
push 4
push 0
push str.InfNumberPara
push edx
mov dword [esp + 0x30], eax
call esi
lea eax, [esp + 0x554]
push str.Lang
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea ecx, [esp + 0x154]
lea edx, [esp + 0x554]
push ecx
push 0
push str.LangID
push edx
call edi
push 4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x20]
push eax
push 4
push 0
push str.LangID
push ecx
call esi
lea edx, [esp + 0xec0]
lea eax, [esp + 0x9bc]
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
call fcn.004022c0
add esp, 0xc
lea edx, [esp + 0x154]
lea eax, [esp + 0x28]
lea ecx, [esp + 0x554]
push edx
push 0x104
push eax
push str.Nodata
push str.DiffLangName
push ecx
call ebx
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.DiffLangName
push ecx
call esi
lea edx, [esp + 0x154]
push edx
push 0x104
lea eax, [esp + 0x30]
lea ecx, [esp + 0x55c]
push eax
push str.Nodata
push str.ReadMeName
push ecx
call ebx
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.ReadMeName
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x28]
push edx
push 0x104
push eax
push str.Nodata
lea ecx, [esp + 0x564]
push str.OLRKey
push ecx
call ebx
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.OLRKey
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x28]
push edx
push 0x104
push eax
push str.Nodata
lea ecx, [esp + 0x564]
push str.SCURL
push ecx
call ebx
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.SCURL
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x28]
push edx
push 0x104
push eax
push str.Nodata
lea ecx, [esp + 0x564]
push str.SCTOPURL
push ecx
call ebx
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
push eax
push 1
push 0
mov ecx, dword [esp + 0x20]
push str.SCTOPURL
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x28]
push edx
push 0x104
push eax
push str.Nodata
lea ecx, [esp + 0x564]
push str.CC2CommonRegFile
push ecx
call ebx
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.CC2CommonRegFile
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x28]
push edx
push 0x104
push eax
push str.Nodata
lea ecx, [esp + 0x564]
push str.CC2ModelRegFile
push ecx
call ebx
lea edx, [esp + 0x28]
push edx
call ebp
push eax
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x14]
push eax
push 1
push 0
push str.CC2ModelRegFile
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x554]
push edx
push 0
push str.ByteCode
push eax
call edi
lea ecx, [esp + 0x18]
push 4
mov edx, dword [esp + 0x14]
push ecx
push 4
push 0
push str.ByteCode
push edx
mov dword [esp + 0x30], eax
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [esp + 0x554]
push str.Specification
push eax
call ebx
lea ecx, [esp + 0x154]
lea edx, [esp + 0x554]
push ecx
push 0
push 0x407130
push edx
call edi
push 4
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
mov ecx, dword [esp + 0x18]
push 4
push 0
push 0x407130
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x554]
push edx
push 1
push str.Prtdrv
push eax
call edi
lea ecx, [esp + 0x14]
push 4
mov edx, dword [esp + 0x14]
push ecx
push 4
push 0
push str.Prtdrv
push edx
mov dword [esp + 0x2c], eax
call esi
lea eax, [esp + 0x154]
lea ecx, [esp + 0x554]
push eax
push 1
push str.PrtdrvPs
push ecx
call edi
lea edx, [esp + 0x14]
push 4
push edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
push 4
push 0
push str.PrtdrvPs
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x554]
push ecx
push 1
push str.Twain
push edx
call edi
push 4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
push 4
push 0
push str.Twain
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x554]
push edx
push 1
push str.NetTwain
push eax
call edi
lea ecx, [esp + 0x14]
push 4
mov edx, dword [esp + 0x14]
push ecx
push 4
push 0
push str.NetTwain
push edx
mov dword [esp + 0x2c], eax
call esi
lea eax, [esp + 0x154]
lea ecx, [esp + 0x554]
push eax
push 1
push str.PcfaxTx
push ecx
call edi
lea edx, [esp + 0x20]
push 4
push edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
push 4
push 0
push str.PcfaxTx
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x554]
push ecx
push 1
push str.2Dial
push edx
call edi
push 4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
push eax
push 4
push 0
push str.2Dial
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x554]
push edx
push 1
push str.PcfaxRx
push eax
call edi
lea ecx, [esp + 0x14]
push 4
mov edx, dword [esp + 0x14]
push ecx
push 4
push 0
push str.PcfaxRx
push edx
mov dword [esp + 0x2c], eax
call esi
lea eax, [esp + 0x154]
lea ecx, [esp + 0x554]
push eax
push 0
push str.NetPcfaxRx
push ecx
call edi
lea edx, [esp + 0x14]
push 4
push edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
push 4
push 0
push str.NetPcfaxRx
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x554]
push ecx
push 1
push 0x4070e0
push edx
call edi
push 4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
push 4
push 0
push 0x4070e0
push ecx
call esi
lea edx, [esp + 0x154]
push edx
push 0
lea eax, [esp + 0x55c]
push str.NetRsp
push eax
call edi
lea ecx, [esp + 0x14]
push 4
mov edx, dword [esp + 0x14]
push ecx
push 4
push 0
push str.NetRsp
push edx
mov dword [esp + 0x2c], eax
call esi
lea eax, [esp + 0x154]
lea ecx, [esp + 0x554]
push eax
push 1
push str.Font
push ecx
call edi
lea edx, [esp + 0x14]
push 4
push edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
push 4
push 0
push str.Font
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x554]
push ecx
push 1
push str.Media
push edx
call edi
push 4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
push 4
push 0
push str.Media
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x554]
push edx
push 0
push 0x4070c4
push eax
call edi
lea ecx, [esp + 0x14]
push 4
mov edx, dword [esp + 0x14]
push ecx
push 4
push 0
push 0x4070c4
push edx
mov dword [esp + 0x2c], eax
call esi
lea eax, [esp + 0x154]
lea ecx, [esp + 0x554]
push eax
push 0
push str.WLLAN
push ecx
call edi
lea edx, [esp + 0x14]
push 4
push edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
push 4
push 0
push str.WLLAN
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x554]
push ecx
push 0
push str.UsersGuide
push edx
call edi
push 4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
push 4
push 0
push str.UsersGuide
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x554]
push edx
push 0
push str.CC2.0
push eax
call edi
lea ecx, [esp + 0x14]
push 4
mov edx, dword [esp + 0x14]
push ecx
push 4
push 0
push str.CC2.0
push edx
mov dword [esp + 0x2c], eax
call esi
lea eax, [esp + 0x154]
lea ecx, [esp + 0x554]
push eax
push 0
push str.StatusMonitor
push ecx
call edi
lea edx, [esp + 0x14]
push 4
push edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
push 4
push 0
push str.StatusMonitor
push eax
call esi
lea ecx, [esp + 0x154]
lea edx, [esp + 0x554]
push ecx
push 0
push str.InstallCheck
push edx
call edi
push 4
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
push 4
push 0
push str.InstallCheck
push ecx
call esi
lea edx, [esp + 0x154]
lea eax, [esp + 0x554]
push edx
push 0
push str.ExternalNet
push eax
call edi
lea ecx, [esp + 0x14]
push 4
push ecx
mov dword [esp + 0x1c], eax
push 4
mov edx, dword [esp + 0x1c]
push 0
push str.ExternalNet
push edx
call esi
lea eax, [esp + 0x154]
lea ecx, [esp + 0x554]
push eax
push 0
push str.InBox
push ecx
call edi
lea edx, [esp + 0x14]
push 4
push edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x18]
push 4
push 0
push str.InBox
push eax
call esi
lea ecx, [esp + 0x24]
push 4
mov edx, dword [esp + 0x14]
push ecx
push 4
push 0
push str.MflProExe
push edx
mov dword [esp + 0x3c], 1
call esi
call fcn.00402310
mov ecx, 0x11
xor eax, eax
lea edi, [esp + 0x978]
rep stosd dword es:[edi], eax
cmp byte [esp + 0x9bc], 0x22
je 0x4021f5
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0xdbc]
push 0x407064
rep stosd dword es:[edi], eax
lea eax, [esp + 0xdc0]
push eax
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0x9bc]
lea edx, [esp + 0xdbc]
push ecx
push edx
call esi
lea eax, [esp + 0xdbc]
push 0x407064
push eax
call esi
lea ecx, [esp + 0xdbc]
lea edx, [esp + 0x9bc]
push ecx
push edx
call ebx
jmp 0x4021fb
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [esp + 0x9bc]
push 0x407390
push eax
call esi
lea ecx, [esp + 0xec0]
lea edx, [esp + 0x9bc]
push ecx
push edx
call esi
lea eax, [esp + 0x144]
lea ecx, [esp + 0x978]
push eax
push ecx
push 0
push 0
push 0
push 1
push 0
lea edx, [esp + 0x9d8]
push 0
push edx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x402290
lea eax, [esp + 0x9bc]
lea ecx, [esp + 0xec0]
push eax
push str.Cannot_start_Application_Installer.___s_
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [esp + 0xec0]
push 0
push str.Error
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18b8
ret 0x10
mov eax, dword [esp + 0x144]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x18b8
ret 0x10