Function at 0x401512
Capabilities:
Get common file path
Query or enumerate registry value
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x444d20
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
mov eax, 0x13e4
call fcn.00420c50
mov dword [ebp - 0x13e0], ecx
mov eax, dword [ebp - 0x13e0]
mov dword [eax + 0x4564], 0x32
push 0x4541ac
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x331c
push ecx
push 0x4541b8
lea edx, [ebp - 0xeb4]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0xeb4]
push eax
push str.Data_file_name___s
call fcn.00401000
add esp, 8
lea ecx, [ebp - 0xeb4]
push ecx
mov edx, dword [ebp - 0x13e0]
add edx, 0x1690
push edx
call fcn.004207d0
add esp, 8
lea eax, [ebp - 0xeb4]
push eax
push 0xff
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x299c
push ecx
push 0x45e818
push str.ModelName
push 0x4541e0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0xeb4]
push edx
push 0xff
mov eax, dword [ebp - 0x13e0]
add eax, 0x2b9c
push eax
push 0x45e81c
push 0x4541e8
push 0x4541ec
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0xeb4]
push ecx
push 0xff
mov edx, dword [ebp - 0x13e0]
add edx, 0x2a9c
push edx
push 0x45e820
push str.CompanyName
push 0x454200
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0xeb4]
push eax
push 0x200
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x2c1c
push ecx
push 0x45e824
push str.RegKey
push 0x454210
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp - 0x13e0]
add edx, 0x299c
push edx
mov eax, dword [ebp - 0x13e0]
add eax, 0x2a9c
push eax
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x2c1c
push ecx
push 0x454218
mov edx, dword [ebp - 0x13e0]
add edx, 0x389c
push edx
call fcn.00420bf4
add esp, 0x14
push str.Dell
mov eax, dword [ebp - 0x13e0]
add eax, 0x2a9c
push eax
call fcn.00420b70
add esp, 8
test eax, eax
jne 0x4016c5
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x2594], 1
lea edx, [ebp - 0xeb4]
push edx
push 0xffffffffffffffff
push str.SmMode
push 0x454234
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x3aa8], eax
mov edx, dword [ebp - 0x13e0]
cmp dword [edx + 0x3aa8], 0xffffffff
jne 0x401709
mov eax, dword [ebp - 0x13e0]
mov dword [eax + 0x3aa8], 0
lea ecx, [ebp - 0xeb4]
push ecx
push 0xffffffffffffffff
push str.XeroxCustomMode
push 0x45424c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x13e0]
mov dword [edx + 0x3aac], eax
mov eax, dword [ebp - 0x13e0]
cmp dword [eax + 0x3aac], 0xffffffff
jne 0x40174d
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x3aac], 0
lea edx, [ebp - 0xeb4]
push edx
push 0xffffffffffffffff
push str.ManagerJobDetectMode
push str.Model
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x38], eax
mov edx, dword [ebp - 0x13e0]
cmp dword [edx + 0x38], 0xffffffff
jne 0x401788
mov eax, dword [ebp - 0x13e0]
mov dword [eax + 0x38], 0
lea ecx, [ebp - 0xeb4]
push ecx
push 0xff
mov edx, dword [ebp - 0x13e0]
add edx, 0x2e1c
push edx
push 0x45e828
push str.LangKey
push 0x45427c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0xeb4]
push eax
push 0xff
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x2f1c
push ecx
push 0x45e82c
push 0x454288
push 0x454294
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0xeb4]
push edx
push 0xff
mov eax, dword [ebp - 0x13e0]
add eax, 0x301c
push eax
push 0x45e830
push str.LangRegKey
push 0x4542ac
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x2e1c
push ecx
mov edx, dword [ebp - 0x13e0]
add edx, 0x301c
push edx
push 0x4542b8
mov eax, dword [ebp - 0x13e0]
add eax, 0x301c
push eax
call fcn.00420bf4
add esp, 0x10
lea ecx, [ebp - 0xeb4]
push ecx
push 0xff
mov edx, dword [ebp - 0x13e0]
add edx, 0x259c
push edx
push 0x45e834
push str.LangRegValue
push 0x4542d0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0xeb4]
push eax
push 0
push str.Polling_DefInterval
push 0x4542f0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x3a9c], eax
lea edx, [ebp - 0xeb4]
push edx
push 0
push str.IsUSBIOByDeviceMon
push 0x454308
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x3ab0], eax
lea edx, [ebp - 0xeb4]
push edx
push 0
push str.SizeOfBuffer
push 0x45431c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x3aa0], eax
mov edx, dword [ebp - 0x13e0]
cmp dword [edx + 0x3aa0], 0
ja 0x401900
mov eax, dword [ebp - 0x13e0]
mov dword [eax + 0x3aa0], 0x4b
mov ecx, dword [ebp - 0x13e0]
cmp dword [ecx + 0x3ab0], 0
je 0x4019ce
lea edx, [ebp - 0xeb4]
push edx
push 0xff
mov eax, dword [ebp - 0x13e0]
add eax, 0x3ac0
push eax
push 0x45e838
push str.FileName
push 0x45432c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0xeb4]
push ecx
push 0xff
lea edx, [ebp - 0xfb8]
push edx
push 0x45e83c
push 0x454334
push 0x454338
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x10
push 0
lea eax, [ebp - 0xfb8]
push eax
call fcn.0042093b
add esp, 0xc
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x3bc0], eax
lea edx, [ebp - 0xeb4]
push edx
push 0xff
lea eax, [ebp - 0xfb8]
push eax
push 0x45e840
push 0x454340
push str.DevMon
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x10
push 0
lea ecx, [ebp - 0xfb8]
push ecx
call fcn.0042093b
add esp, 0xc
mov edx, dword [ebp - 0x13e0]
mov dword [edx + 0x3bc4], eax
lea eax, [ebp - 0xeb4]
push eax
push 0
push str.IsJobMonitior
push 0x45435c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x3ab4], eax
lea edx, [ebp - 0xeb4]
push edx
push 0
push str.IsRCP
push 0x45436c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x455c], eax
lea edx, [ebp - 0xeb4]
push edx
push 0xffffffffffffffff
push str.IsNetworkSupported
push 0x454388
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x3aa4], eax
mov edx, dword [ebp - 0x13e0]
cmp dword [edx + 0x3aa4], 0xffffffff
jne 0x401a5c
mov eax, dword [ebp - 0x13e0]
mov dword [eax + 0x3aa4], 1
lea ecx, [ebp - 0xeb4]
push ecx
push 0xffffffffffffffff
push str.IsTroubleShooting
push 0x4543a4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x13e0]
mov dword [edx + 0x4560], eax
mov eax, dword [ebp - 0x13e0]
cmp dword [eax + 0x4560], 0xffffffff
jne 0x401aa0
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x4560], 1
lea edx, [ebp - 0xeb4]
push edx
push 0xffffffffffffffff
push str.IsForceToCheckJobID
push 0x4543c0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x44], eax
mov edx, dword [ebp - 0x13e0]
cmp dword [edx + 0x44], 0xffffffff
jne 0x401adb
mov eax, dword [ebp - 0x13e0]
mov dword [eax + 0x44], 0
lea ecx, [ebp - 0xeb4]
push ecx
push 0xffffffffffffffff
push str.IsUSBPrintingBit
push 0x4543dc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x13e0]
mov dword [edx + 0x34], eax
mov eax, dword [ebp - 0x13e0]
cmp dword [eax + 0x34], 0xffffffff
jne 0x401b16
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x34], 0
lea edx, [ebp - 0xeb4]
push edx
push 0xffffffffffffffff
push str.IsNetworkDeviceID
push 0x4543f8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x30], eax
mov edx, dword [ebp - 0x13e0]
cmp dword [edx + 0x30], 0xffffffff
jne 0x401b51
mov eax, dword [ebp - 0x13e0]
mov dword [eax + 0x30], 1
lea ecx, [ebp - 0xeb4]
push ecx
push 0xffffffffffffffff
push str.IsJobAccount
push 0x454410
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x13e0]
mov dword [edx + 0x2c], eax
mov eax, dword [ebp - 0x13e0]
cmp dword [eax + 0x2c], 0xffffffff
jne 0x401b8c
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x2c], 0
lea edx, [ebp - 0xeb4]
push edx
push 0xffffffffffffffff
push str.IsWaitStatus
push 0x454428
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x10], eax
mov edx, dword [ebp - 0x13e0]
cmp dword [edx + 0x10], 0xffffffff
jne 0x401bc7
mov eax, dword [ebp - 0x13e0]
mov dword [eax + 0x10], 0
lea ecx, [ebp - 0xeb4]
push ecx
push 0xffffffffffffffff
push str.IsShowWaitOption
push 0x454444
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x13e0]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 0x13e0]
cmp dword [eax + 0x14], 0xffffffff
jne 0x401c02
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x14], 0
lea edx, [ebp - 0xeb4]
push edx
push 0xffffffffffffffff
push str.IsUPDMode
push 0x454458
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0xc], eax
mov edx, dword [ebp - 0x13e0]
cmp dword [edx + 0xc], 0xffffffff
jne 0x401c3d
mov eax, dword [ebp - 0x13e0]
mov dword [eax + 0xc], 0
lea ecx, [ebp - 0xeb4]
push ecx
push 0xffffffffffffffff
push str.IsImprovedSM
push 0x454470
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x13e0]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x13e0]
cmp dword [eax + 8], 0xffffffff
jne 0x401c78
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 8], 0
lea edx, [ebp - 0xeb4]
push edx
push 0xffffffffffffffff
push str.IsSupportPreparing
push 0x45448c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x13e0]
cmp dword [edx + 4], 0xffffffff
jne 0x401cb3
mov eax, dword [ebp - 0x13e0]
mov dword [eax + 4], 0
lea ecx, [ebp - 0xeb4]
push ecx
push 0xffffffffffffffff
push str.IsXML
push 0x45449c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x13e0]
mov dword [edx + 0x1688], eax
lea eax, [ebp - 0xeb4]
push eax
push 0xff
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x1385
push ecx
push 0x45e844
push str.DefaultFile
push 0x4544ac
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0xeb4]
push edx
push 0xff
mov eax, dword [ebp - 0x13e0]
add eax, 0x1485
push eax
push 0x45e848
push str.ReceivedFile
push 0x4544c0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0xeb4]
push ecx
push 0xff
mov edx, dword [ebp - 0x13e0]
add edx, 0x1285
push edx
push 0x45e84c
push 0x4544c4
push 0x4544c8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
ja 0x401d7e
push str._SmartPanel_sm.xml
mov eax, dword [ebp - 0x13e0]
add eax, 0x1285
push eax
call fcn.004207d0
add esp, 8
lea ecx, [ebp - 0xeb4]
push ecx
push 0xff
mov edx, dword [ebp - 0x13e0]
add edx, 0x1185
push edx
push 0x45e850
push str.DefaultHTML
push 0x4544ec
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
ja 0x401dc9
push str.main.html
mov eax, dword [ebp - 0x13e0]
add eax, 0x1285
push eax
call fcn.004207d0
add esp, 8
lea ecx, [ebp - 0xeb4]
push ecx
push 0x400
mov edx, dword [ebp - 0x13e0]
add edx, 0xd85
push edx
push 0x45e854
push str.XMLOrderURL
push 0x454508
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 0x13e0]
add eax, 0x1385
push eax
call fcn.004208c0
add esp, 4
test eax, eax
jbe 0x401e59
lea ecx, [ebp - 0x11c4]
push ecx
push 0x200
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov edx, dword [ebp - 0x13e0]
add edx, 0x1485
push edx
lea eax, [ebp - 0x11c4]
push eax
call fcn.004207e0
add esp, 8
lea ecx, [ebp - 0x11c4]
push ecx
mov edx, dword [ebp - 0x13e0]
add edx, 0x1485
push edx
call fcn.004207d0
add esp, 8
mov eax, dword [ebp - 0x13e0]
cmp dword [eax + 0x1688], 0xffffffff
jne 0x401e78
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x1688], 0
mov edx, dword [ebp - 0x13e0]
add edx, 0x1485
push edx
mov eax, dword [ebp - 0x13e0]
mov ecx, dword [eax + 0x1688]
push ecx
push str.m_bSupportXML_is__d___s
call fcn.00401000
add esp, 0xc
lea edx, [ebp - 0xeb4]
push edx
push 0xffffffffffffffff
push str.IsBlackOnlyMode
push str.OPTION
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x168c], eax
mov edx, dword [ebp - 0x13e0]
cmp dword [edx + 0x168c], 0xffffffff
jne 0x401ee3
mov eax, dword [ebp - 0x13e0]
mov dword [eax + 0x168c], 0
mov ecx, dword [ebp - 0x13e0]
call fcn.004035a6
lea ecx, [ebp - 0xeb4]
push ecx
push 0xffffffffffffffff
push str.IsBuyNow
push 0x454548
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x13e0]
mov dword [edx + 0xd80], eax
mov eax, dword [ebp - 0x13e0]
cmp dword [eax + 0xd80], 0xffffffff
jne 0x401f32
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0xd80], 1
lea edx, [ebp - 0xeb4]
push edx
push 0xffffffffffffffff
push str.IsTonerStatus
push 0x454560
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x3ab8], eax
mov edx, dword [ebp - 0x13e0]
cmp dword [edx + 0x3ab8], 0xffffffff
jne 0x401f76
mov eax, dword [ebp - 0x13e0]
mov dword [eax + 0x3ab8], 1
lea ecx, [ebp - 0xeb4]
push ecx
push 0x3ff
mov edx, dword [ebp - 0x13e0]
add edx, 0x1d94
push edx
push 0x45e858
push str.TonerLowStatus
push 0x454578
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0xeb4]
push eax
push 0x3ff
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x2194
push ecx
push 0x45e85c
push str.TonerErrStatus
push 0x454590
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0xeb4]
push edx
push 0xff
mov eax, dword [ebp - 0x13e0]
add eax, 0x4254
push eax
push 0x45e860
push str.ModelID
push 0x4545a0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0xeb4]
push ecx
push 0x3ff
mov edx, dword [ebp - 0x13e0]
add edx, 0x3d54
push edx
push 0x45e864
push str.OrderURL
push 0x4545b4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0xeb4]
push eax
push 0
push str.NewTonerLevel
push 0x4545cc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x4554], eax
lea edx, [ebp - 0xeb4]
push edx
push 0
push str.Color
push str.Toner
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x4558], eax
lea edx, [ebp - 0xeb4]
push edx
push 0xff
lea eax, [ebp - 0xfb8]
push eax
push 0x45e868
push 0x4545e4
push 0x4545f0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0xfb8]
push ecx
mov edx, dword [ebp - 0x13e0]
add edx, 0x331c
push edx
push 0x4545f8
mov eax, dword [ebp - 0x13e0]
add eax, 0x1890
push eax
call fcn.00420bf4
add esp, 0x10
mov ecx, dword [ebp - 0x13e0]
call fcn.0040287e
test eax, eax
je 0x402135
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x269c
push ecx
call fcn.004208c0
add esp, 4
test eax, eax
jne 0x402135
lea edx, [ebp - 0xeb4]
push edx
push 0xa
lea eax, [ebp - 0x11d0]
push eax
push 0x45e86c
push str.DefaultLang
push str.Language
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x11d0]
push ecx
mov edx, dword [ebp - 0x13e0]
add edx, 0x269c
push edx
call fcn.004207d0
add esp, 8
lea eax, [ebp - 0xeb4]
push eax
push 0xffffffffffffffff
push str.IsFindPosition
push 0x454628
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x3c], eax
mov edx, dword [ebp - 0x13e0]
cmp dword [edx + 0x3c], 0xffffffff
jne 0x402170
mov eax, dword [ebp - 0x13e0]
mov dword [eax + 0x3c], 0
lea ecx, [ebp - 0xeb4]
push ecx
push 0xffffffffffffffff
push str.PosValueToIgnoreTray
push str.TrayIcon
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x13e0]
mov dword [edx + 0x40], eax
mov eax, dword [ebp - 0x13e0]
cmp dword [eax + 0x40], 0xffffffff
jne 0x4021ab
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x40], 0x2710
lea ecx, [ebp - 0x418]
call fcn.00404460
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x13e0]
add edx, 0x269c
push edx
mov eax, dword [ebp - 0x13e0]
add eax, 0x331c
push eax
push 0x454658
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x311c
push ecx
call fcn.00420bf4
add esp, 0x10
mov edx, dword [ebp - 0x13e0]
add edx, 0x311c
push edx
push str.string_file_path___s
call fcn.00401000
add esp, 8
lea eax, [ebp - 0xdb4]
push eax
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x311c
push ecx
call fcn.0042067e
add esp, 8
mov dword [ebp - 0xfc0], eax
cmp dword [ebp - 0xfc0], 0xffffffff
jne 0x402284
mov edx, dword [ebp - 0x13e0]
add edx, 0x2f1c
push edx
mov eax, dword [ebp - 0x13e0]
add eax, 0x331c
push eax
push str._sLangpanel__s.trs
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x311c
push ecx
call fcn.00420bf4
add esp, 0x10
push 0x4546a0
mov edx, dword [ebp - 0x13e0]
add edx, 0x269c
push edx
call fcn.004207d0
add esp, 8
jmp 0x402293
mov eax, dword [ebp - 0xfc0]
push eax
call fcn.0042074b
add esp, 4
mov dword [ebp - 0xc1c], 0x80
mov dword [ebp - 0x414], 1
lea ecx, [ebp - 0xfbc]
push ecx
push 0x20019
push 0
mov edx, dword [ebp - 0x13e0]
add edx, 0x301c
push edx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4023e9
lea eax, [ebp - 0xc1c]
push eax
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x4968
push ecx
push 0
push 0
push str.LastPrintModel
mov edx, dword [ebp - 0xfbc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4023dc
mov eax, dword [ebp - 0x13e0]
add eax, 0x4968
push eax
call fcn.004208c0
add esp, 4
test eax, eax
jbe 0x40236c
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x4968
push ecx
mov edx, dword [ebp - 0x13e0]
add edx, 0x2a9c
push edx
mov eax, dword [ebp - 0x13e0]
add eax, 0x2c1c
push eax
push 0x4546b4
lea ecx, [ebp - 0xc18]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
mov edx, dword [ebp - 0x13e0]
mov dword [edx + 0x49e8], 1
jmp 0x4023cf
mov eax, dword [ebp - 0x13e0]
add eax, 0x4968
push eax
call fcn.004208c0
add esp, 4
test eax, eax
jne 0x4023cf
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x299c
push ecx
mov edx, dword [ebp - 0x13e0]
add edx, 0x2a9c
push edx
mov eax, dword [ebp - 0x13e0]
add eax, 0x2c1c
push eax
push str._s_s_s
lea ecx, [ebp - 0xc18]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
mov edx, dword [ebp - 0x13e0]
mov dword [edx + 0x49e8], 0
mov eax, dword [ebp - 0xfbc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xfbc]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x45e870
lea ecx, [ebp - 0xfc4]
call fcn.0043708e
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x13e0]
cmp dword [edx + 0x49e8], 0
je 0x402501
lea eax, [ebp - 0xfbc]
push eax
push 0x20019
push 0
lea ecx, [ebp - 0xc18]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4024ce
mov dword [ebp - 0xc1c], 0x80
lea edx, [ebp - 0xc1c]
push edx
lea eax, [ebp - 0xc9c]
push eax
lea ecx, [ebp - 0x414]
push ecx
push 0
push 0x4546cc
mov edx, dword [ebp - 0xfbc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4024bf
lea eax, [ebp - 0xc9c]
push eax
lea ecx, [ebp - 0xfc4]
call fcn.004371a9
push str.SMOption.exe
lea ecx, [ebp - 0xfc4]
call fcn.00435ea3
lea ecx, [ebp - 0xfc4]
call fcn.004044d0
push eax
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x4568
push ecx
call fcn.004207d0
add esp, 8
mov edx, dword [ebp - 0xfbc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0xfbc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4024ff
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x49ec], 0
mov edx, dword [ebp - 0x13e0]
add edx, 0x331c
push edx
mov eax, dword [ebp - 0x13e0]
add eax, 0x4568
push eax
call fcn.004207d0
add esp, 8
jmp 0x402532
mov ecx, dword [ebp - 0x13e0]
mov dword [ecx + 0x49ec], 0
mov edx, dword [ebp - 0x13e0]
add edx, 0x331c
push edx
mov eax, dword [ebp - 0x13e0]
add eax, 0x4568
push eax
call fcn.004207d0
add esp, 8
push str.OPTS.DAT
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x4568
push ecx
push 0x4546f8
lea edx, [ebp - 0x818]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x818]
push eax
push 0xff
lea ecx, [ebp - 0xfb8]
push ecx
push 0x45e874
push str.imagename
push str.Image
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0xfb8]
push edx
mov eax, dword [ebp - 0x13e0]
add eax, 0x4568
push eax
push 0x454714
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x1890
push ecx
call fcn.00420bf4
add esp, 0x10
lea edx, [ebp - 0x818]
push edx
push 0xff
mov eax, dword [ebp - 0x13e0]
add eax, 0x1a94
push eax
push 0x45e878
push str.psuname
push 0x454724
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 0x13e0]
cmp dword [ecx + 0xc], 1
jne 0x40262c
mov edx, dword [ebp - 0x13e0]
cmp dword [edx + 0x49e8], 1
jne 0x40262a
mov eax, dword [ebp - 0x13e0]
add eax, 0x4568
push eax
push 0x454728
lea ecx, [ebp - 0x40c]
push ecx
call fcn.00420bf4
add esp, 0xc
lea edx, [ebp - 0x40c]
push edx
push 0x454734
call fcn.00401000
add esp, 8
jmp 0x402660
mov eax, dword [ebp - 0x13e0]
add eax, 0x331c
push eax
push str._shelp.
lea ecx, [ebp - 0x40c]
push ecx
call fcn.00420bf4
add esp, 0xc
lea edx, [ebp - 0x40c]
push edx
push str.szHelpFolderPath_file_path___s
call fcn.00401000
add esp, 8
lea eax, [ebp - 0xdb4]
push eax
lea ecx, [ebp - 0x40c]
push ecx
call fcn.0042067e
add esp, 8
mov dword [ebp - 0xfc0], eax
cmp dword [ebp - 0xfc0], 0xffffffff
jne 0x402711
mov edx, dword [ebp - 0x13e0]
mov dword [edx + 0x24], 1
lea eax, [ebp - 0x13d0]
push eax
push 0x200
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push str.redirect.htm
lea ecx, [ebp - 0x13d0]
push ecx
call fcn.004207e0
add esp, 8
lea edx, [ebp - 0x13d0]
push edx
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x20
call fcn.004371a9
mov eax, dword [ebp - 0x13e0]
cmp dword [eax + 0xc], 1
jne 0x402704
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x4968
push ecx
mov edx, dword [ebp - 0x13e0]
add edx, 0x2a9c
push edx
mov ecx, dword [ebp - 0x13e0]
call fcn.00404157
jmp 0x40270f
mov ecx, dword [ebp - 0x13e0]
call fcn.00403fec
jmp 0x40272d
mov eax, dword [ebp - 0x13e0]
mov dword [eax + 0x24], 0
mov ecx, dword [ebp - 0xfc0]
push ecx
call fcn.0042074b
add esp, 4
lea ecx, [ebp - 0xeb8]
call fcn.00404460
mov byte [ebp - 4], 2
push str.JobMonPath
lea ecx, [ebp - 0x410]
call fcn.0043708e
mov byte [ebp - 4], 3
lea edx, [ebp - 0xeb8]
push edx
push ecx
mov ecx, esp
mov dword [ebp - 0x13d4], esp
lea eax, [ebp - 0x410]
push eax
call fcn.00436d95
mov dword [ebp - 0x13e4], eax
mov ecx, dword [ebp - 0x13e4]
mov dword [ebp - 0x13e8], ecx
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x13e0]
add edx, 0x389c
push ecx
mov ecx, esp
mov dword [ebp - 0x13d8], esp
push edx
call fcn.0043708e
mov dword [ebp - 0x13ec], eax
mov ecx, dword [ebp - 0x13e0]
mov byte [ebp - 4], 3
call fcn.00402e95
mov dword [ebp - 0x13f0], eax
cmp dword [ebp - 0x13f0], 0
jne 0x4027da
mov eax, dword [ebp - 0x13e0]
add eax, 0x389c
push eax
push str.GetRegString_fail_in_OnLaunchJobMonitor_regpath___s_n
call fcn.00401000
add esp, 8
lea ecx, [ebp - 0xeb8]
call fcn.004044d0
push eax
mov ecx, dword [ebp - 0x13e0]
add ecx, 0x279c
push ecx
call fcn.004207d0
add esp, 8
mov edx, dword [ebp - 0x13e0]
add edx, 0x331c
push edx
push str._sCODE.dat
mov eax, dword [ebp - 0x13e0]
add eax, 0x351c
push eax
call fcn.00420bf4
add esp, 0xc
mov dword [ebp - 0x13dc], 1
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x410]
call fcn.00437020
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xeb8]
call fcn.00437020
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xfc4]
call fcn.00437020
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x418]
call fcn.00437020
mov eax, dword [ebp - 0x13dc]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret