Function at 0x4013d7
Capabilities:
Get common file path
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x439f76
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x554
mov dword [ebp - 0x550], ecx
mov eax, dword [ebp - 0x550]
mov dword [eax + 0x4540], 0x32
push str.OPTS.DAT
mov ecx, dword [ebp - 0x550]
add ecx, 0x32f0
push ecx
push 0x447100
lea edx, [ebp - 0x22c]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0x22c]
push eax
push str.Data_file_name___s
call fcn.00401000
add esp, 8
lea ecx, [ebp - 0x22c]
push ecx
mov edx, dword [ebp - 0x550]
add edx, 0x1668
push edx
call fcn.00419a10
add esp, 8
lea eax, [ebp - 0x22c]
push eax
push 0xff
mov ecx, dword [ebp - 0x550]
add ecx, 0x2970
push ecx
push 0x450330
push str.ModelName
push 0x447128
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0x22c]
push edx
push 0xff
mov eax, dword [ebp - 0x550]
add eax, 0x2b70
push eax
push 0x450334
push 0x447130
push 0x447134
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x22c]
push ecx
push 0xff
mov edx, dword [ebp - 0x550]
add edx, 0x2a70
push edx
push 0x450338
push str.CompanyName
push 0x447148
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x22c]
push eax
push 0x200
mov ecx, dword [ebp - 0x550]
add ecx, 0x2bf0
push ecx
push 0x45033c
push str.RegKey
push 0x447158
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edx, dword [ebp - 0x550]
add edx, 0x2970
push edx
mov eax, dword [ebp - 0x550]
add eax, 0x2a70
push eax
mov ecx, dword [ebp - 0x550]
add ecx, 0x2bf0
push ecx
push str._s_s_s
mov edx, dword [ebp - 0x550]
add edx, 0x3870
push edx
call fcn.00419dae
add esp, 0x14
lea eax, [ebp - 0x22c]
push eax
push 0xffffffffffffffff
push str.SmMode
push 0x447174
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x3a7c], eax
mov edx, dword [ebp - 0x550]
cmp dword [edx + 0x3a7c], 0xffffffff
jne 0x40159d
mov eax, dword [ebp - 0x550]
mov dword [eax + 0x3a7c], 0
lea ecx, [ebp - 0x22c]
push ecx
push 0xffffffffffffffff
push str.XeroxCustomMode
push 0x44718c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x550]
mov dword [edx + 0x3a80], eax
mov eax, dword [ebp - 0x550]
cmp dword [eax + 0x3a80], 0xffffffff
jne 0x4015e1
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x3a80], 0
lea edx, [ebp - 0x22c]
push edx
push 0xffffffffffffffff
push str.ManagerJobDetectMode
push str.Model
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x10], eax
mov edx, dword [ebp - 0x550]
cmp dword [edx + 0x10], 0xffffffff
jne 0x40161c
mov eax, dword [ebp - 0x550]
mov dword [eax + 0x10], 0
lea ecx, [ebp - 0x22c]
push ecx
push 0xff
mov edx, dword [ebp - 0x550]
add edx, 0x2df0
push edx
push 0x450340
push str.LangKey
push 0x4471bc
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x22c]
push eax
push 0xff
mov ecx, dword [ebp - 0x550]
add ecx, 0x2ef0
push ecx
push 0x450344
push 0x4471c8
push 0x4471d4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0x22c]
push edx
push 0xff
mov eax, dword [ebp - 0x550]
add eax, 0x2ff0
push eax
push 0x450348
push str.LangRegKey
push 0x4471ec
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 0x550]
add ecx, 0x2df0
push ecx
mov edx, dword [ebp - 0x550]
add edx, 0x2ff0
push edx
push 0x4471f8
mov eax, dword [ebp - 0x550]
add eax, 0x2ff0
push eax
call fcn.00419dae
add esp, 0x10
lea ecx, [ebp - 0x22c]
push ecx
push 0xff
mov edx, dword [ebp - 0x550]
add edx, 0x2570
push edx
push 0x45034c
push str.LangRegValue
push 0x447210
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x22c]
push eax
push 0
push str.Polling_DefInterval
push 0x447230
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x3a70], eax
lea edx, [ebp - 0x22c]
push edx
push 0
push str.IsUSBIOByDeviceMon
push 0x447248
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x3a84], eax
lea edx, [ebp - 0x22c]
push edx
push 0
push str.SizeOfBuffer
push 0x44725c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x3a74], eax
mov edx, dword [ebp - 0x550]
cmp dword [edx + 0x3a74], 0
ja 0x401794
mov eax, dword [ebp - 0x550]
mov dword [eax + 0x3a74], 0x4b
mov ecx, dword [ebp - 0x550]
cmp dword [ecx + 0x3a84], 0
je 0x401862
lea edx, [ebp - 0x22c]
push edx
push 0xff
mov eax, dword [ebp - 0x550]
add eax, 0x3a94
push eax
push 0x450350
push str.FileName
push 0x44726c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x22c]
push ecx
push 0xff
lea edx, [ebp - 0x330]
push edx
push 0x450354
push 0x447274
push 0x447278
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x10
push 0
lea eax, [ebp - 0x330]
push eax
call fcn.00419b7b
add esp, 0xc
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x3b94], eax
lea edx, [ebp - 0x22c]
push edx
push 0xff
lea eax, [ebp - 0x330]
push eax
push 0x450358
push 0x447280
push str.DevMon
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push 0x10
push 0
lea ecx, [ebp - 0x330]
push ecx
call fcn.00419b7b
add esp, 0xc
mov edx, dword [ebp - 0x550]
mov dword [edx + 0x3b98], eax
lea eax, [ebp - 0x22c]
push eax
push 0
push str.IsJobMonitior
push 0x44729c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x3a88], eax
lea edx, [ebp - 0x22c]
push edx
push 0
push str.IsRCP
push 0x4472ac
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x4538], eax
lea edx, [ebp - 0x22c]
push edx
push 0xffffffffffffffff
push str.IsNetworkSupported
push 0x4472c8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x3a78], eax
mov edx, dword [ebp - 0x550]
cmp dword [edx + 0x3a78], 0xffffffff
jne 0x4018f0
mov eax, dword [ebp - 0x550]
mov dword [eax + 0x3a78], 1
lea ecx, [ebp - 0x22c]
push ecx
push 0xffffffffffffffff
push str.IsTroubleShooting
push 0x4472e4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x550]
mov dword [edx + 0x453c], eax
mov eax, dword [ebp - 0x550]
cmp dword [eax + 0x453c], 0xffffffff
jne 0x401934
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x453c], 1
lea edx, [ebp - 0x22c]
push edx
push 0xffffffffffffffff
push str.IsForceToCheckJobID
push 0x447300
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x1c], eax
mov edx, dword [ebp - 0x550]
cmp dword [edx + 0x1c], 0xffffffff
jne 0x40196f
mov eax, dword [ebp - 0x550]
mov dword [eax + 0x1c], 0
lea ecx, [ebp - 0x22c]
push ecx
push 0xffffffffffffffff
push str.IsUSBPrintingBit
push 0x44731c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x550]
mov dword [edx + 0xc], eax
mov eax, dword [ebp - 0x550]
cmp dword [eax + 0xc], 0xffffffff
jne 0x4019aa
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0xc], 0
lea edx, [ebp - 0x22c]
push edx
push 0xffffffffffffffff
push str.IsNetworkDeviceID
push 0x447338
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 0x550]
cmp dword [edx + 8], 0xffffffff
jne 0x4019e5
mov eax, dword [ebp - 0x550]
mov dword [eax + 8], 1
lea ecx, [ebp - 0x22c]
push ecx
push 0xffffffffffffffff
push str.IsXML
push 0x447348
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x550]
mov dword [edx + 0x1660], eax
lea eax, [ebp - 0x22c]
push eax
push 0xff
mov ecx, dword [ebp - 0x550]
add ecx, 0x135d
push ecx
push 0x45035c
push str.DefaultFile
push 0x447358
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0x22c]
push edx
push 0xff
mov eax, dword [ebp - 0x550]
add eax, 0x145d
push eax
push 0x450360
push str.ReceivedFile
push 0x44736c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x22c]
push ecx
push 0xff
mov edx, dword [ebp - 0x550]
add edx, 0x125d
push edx
push 0x450364
push 0x447370
push 0x447374
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
ja 0x401ab0
push str._SmartPanel_sm.xml
mov eax, dword [ebp - 0x550]
add eax, 0x125d
push eax
call fcn.00419a10
add esp, 8
lea ecx, [ebp - 0x22c]
push ecx
push 0xff
mov edx, dword [ebp - 0x550]
add edx, 0x115d
push edx
push 0x450368
push str.DefaultHTML
push 0x447398
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
ja 0x401afb
push str.main.html
mov eax, dword [ebp - 0x550]
add eax, 0x125d
push eax
call fcn.00419a10
add esp, 8
lea ecx, [ebp - 0x22c]
push ecx
push 0x400
mov edx, dword [ebp - 0x550]
add edx, 0xd5d
push edx
push 0x45036c
push 0x4473a8
push 0x4473b4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [ebp - 0x550]
add eax, 0x135d
push eax
call fcn.00419b00
add esp, 4
test eax, eax
jbe 0x401b8b
lea ecx, [ebp - 0x534]
push ecx
push 0x200
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov edx, dword [ebp - 0x550]
add edx, 0x145d
push edx
lea eax, [ebp - 0x534]
push eax
call fcn.00419a20
add esp, 8
lea ecx, [ebp - 0x534]
push ecx
mov edx, dword [ebp - 0x550]
add edx, 0x145d
push edx
call fcn.00419a10
add esp, 8
mov eax, dword [ebp - 0x550]
cmp dword [eax + 0x1660], 0xffffffff
jne 0x401baa
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x1660], 0
mov edx, dword [ebp - 0x550]
add edx, 0x145d
push edx
mov eax, dword [ebp - 0x550]
mov ecx, dword [eax + 0x1660]
push ecx
push str.m_bSupportXML_is__d___s
call fcn.00401000
add esp, 0xc
lea edx, [ebp - 0x22c]
push edx
push 0xffffffffffffffff
push str.IsBlackOnlyMode
push str.OPTION
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x1664], eax
mov edx, dword [ebp - 0x550]
cmp dword [edx + 0x1664], 0xffffffff
jne 0x401c15
mov eax, dword [ebp - 0x550]
mov dword [eax + 0x1664], 0
mov ecx, dword [ebp - 0x550]
call fcn.00402e81
lea ecx, [ebp - 0x22c]
push ecx
push 0xffffffffffffffff
push str.IsBuyNow
push 0x4473f4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x550]
mov dword [edx + 0xd58], eax
mov eax, dword [ebp - 0x550]
cmp dword [eax + 0xd58], 0xffffffff
jne 0x401c64
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0xd58], 1
lea edx, [ebp - 0x22c]
push edx
push 0xffffffffffffffff
push str.IsTonerStatus
push 0x44740c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x3a8c], eax
mov edx, dword [ebp - 0x550]
cmp dword [edx + 0x3a8c], 0xffffffff
jne 0x401ca8
mov eax, dword [ebp - 0x550]
mov dword [eax + 0x3a8c], 1
lea ecx, [ebp - 0x22c]
push ecx
push 0x3ff
mov edx, dword [ebp - 0x550]
add edx, 0x1d6c
push edx
push 0x450370
push str.TonerLowStatus
push 0x447424
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x22c]
push eax
push 0x3ff
mov ecx, dword [ebp - 0x550]
add ecx, 0x216c
push ecx
push 0x450374
push str.TonerErrStatus
push 0x44743c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea edx, [ebp - 0x22c]
push edx
push 0xff
mov eax, dword [ebp - 0x550]
add eax, 0x4230
push eax
push 0x450378
push 0x447444
push 0x44744c
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x22c]
push ecx
push 0x3ff
mov edx, dword [ebp - 0x550]
add edx, 0x3d30
push edx
push 0x45037c
push str.OrderURL
push 0x447460
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x22c]
push eax
push 0
push str.NewTonerLevel
push 0x447478
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x4530], eax
lea edx, [ebp - 0x22c]
push edx
push 0
push str.Color
push 0x447488
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x4534], eax
lea edx, [ebp - 0x22c]
push edx
push 0xff
lea eax, [ebp - 0x330]
push eax
push 0x450380
push str.imagename
push str.Image
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea ecx, [ebp - 0x330]
push ecx
mov edx, dword [ebp - 0x550]
add edx, 0x32f0
push edx
push 0x4474a4
mov eax, dword [ebp - 0x550]
add eax, 0x1868
push eax
call fcn.00419dae
add esp, 0x10
lea ecx, [ebp - 0x22c]
push ecx
push 0xff
mov edx, dword [ebp - 0x550]
add edx, 0x1a6c
push edx
push 0x450384
push str.psuname
push 0x4474b4
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov ecx, dword [ebp - 0x550]
call fcn.00402127
test eax, eax
je 0x401e94
mov eax, dword [ebp - 0x550]
add eax, 0x2670
push eax
call fcn.00419b00
add esp, 4
test eax, eax
jne 0x401e94
lea ecx, [ebp - 0x22c]
push ecx
push 0xa
lea edx, [ebp - 0x540]
push edx
push 0x450388
push str.DefaultLang
push str.Language
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x540]
push eax
mov ecx, dword [ebp - 0x550]
add ecx, 0x2670
push ecx
call fcn.00419a10
add esp, 8
lea edx, [ebp - 0x22c]
push edx
push 0xffffffffffffffff
push str.IsFindPosition
push 0x4474e0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x14], eax
mov edx, dword [ebp - 0x550]
cmp dword [edx + 0x14], 0xffffffff
jne 0x401ecf
mov eax, dword [ebp - 0x550]
mov dword [eax + 0x14], 0
lea ecx, [ebp - 0x22c]
push ecx
push 0xffffffffffffffff
push str.PosValueToIgnoreTray
push str.TrayIcon
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edx, dword [ebp - 0x550]
mov dword [edx + 0x18], eax
mov eax, dword [ebp - 0x550]
cmp dword [eax + 0x18], 0xffffffff
jne 0x401f0a
mov ecx, dword [ebp - 0x550]
mov dword [ecx + 0x18], 0x2710
lea ecx, [ebp - 0x14]
call fcn.00403990
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x550]
add edx, 0x2670
push edx
mov eax, dword [ebp - 0x550]
add eax, 0x32f0
push eax
push 0x447510
mov ecx, dword [ebp - 0x550]
add ecx, 0x30f0
push ecx
call fcn.00419dae
add esp, 0x10
mov edx, dword [ebp - 0x550]
add edx, 0x30f0
push edx
push str.string_file_path___s
call fcn.00401000
add esp, 8
lea eax, [ebp - 0x12c]
push eax
mov ecx, dword [ebp - 0x550]
add ecx, 0x30f0
push ecx
call fcn.004198ba
add esp, 8
mov dword [ebp - 0x334], eax
cmp dword [ebp - 0x334], 0xffffffff
jne 0x401fe0
mov edx, dword [ebp - 0x550]
add edx, 0x2ef0
push edx
mov eax, dword [ebp - 0x550]
add eax, 0x32f0
push eax
push str._sLangpanel__s.trs
mov ecx, dword [ebp - 0x550]
add ecx, 0x30f0
push ecx
call fcn.00419dae
add esp, 0x10
push 0x447558
mov edx, dword [ebp - 0x550]
add edx, 0x2670
push edx
call fcn.00419a10
add esp, 8
jmp 0x401fef
mov eax, dword [ebp - 0x334]
push eax
call fcn.00419987
add esp, 4
lea ecx, [ebp - 0x230]
call fcn.00403990
mov byte [ebp - 4], 1
push str.JobMonPath
lea ecx, [ebp - 0x10]
call fcn.0042c38b
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x230]
push ecx
push ecx
mov ecx, esp
mov dword [ebp - 0x544], esp
lea edx, [ebp - 0x10]
push edx
call fcn.0042c092
mov dword [ebp - 0x554], eax
mov eax, dword [ebp - 0x554]
mov dword [ebp - 0x558], eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x550]
add ecx, 0x3870
push ecx
mov edx, esp
mov dword [ebp - 0x548], esp
push ecx
mov ecx, edx
call fcn.0042c38b
mov dword [ebp - 0x55c], eax
mov ecx, dword [ebp - 0x550]
mov byte [ebp - 4], 2
call fcn.0040273e
mov dword [ebp - 0x560], eax
cmp dword [ebp - 0x560], 0
jne 0x402098
mov eax, dword [ebp - 0x550]
add eax, 0x3870
push eax
push str.GetRegString_fail_in_OnLaunchJobMonitor_regpath___s_n
call fcn.00401000
add esp, 8
lea ecx, [ebp - 0x230]
call fcn.004039b0
push eax
mov ecx, dword [ebp - 0x550]
add ecx, 0x2770
push ecx
call fcn.00419a10
add esp, 8
mov edx, dword [ebp - 0x550]
add edx, 0x32f0
push edx
push str._sCODE.dat
mov eax, dword [ebp - 0x550]
add eax, 0x34f0
push eax
call fcn.00419dae
add esp, 0xc
mov dword [ebp - 0x54c], 1
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x10]
call fcn.0042c31d
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x230]
call fcn.0042c31d
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.0042c31d
mov eax, dword [ebp - 0x54c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret