Function at 0x41f720
Capabilities:
Query or enumerate registry value
Read .ini file
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x678
mov eax, dword [0x43d064]
xor eax, ebp
mov dword [ebp - 0xc], eax
push esi
mov dword [ebp - 0x678], ecx
mov dword [ebp - 0x434], 0
push str._PJL_INFO_KCONFIG
mov eax, dword [ebp + 8]
push eax
call fcn.00401ce0
add esp, 8
mov dword [ebp - 0x42c], eax
cmp dword [ebp - 0x42c], 0
je 0x41fadb
push str.BLACK_TONER_LEVEL
mov ecx, dword [ebp - 0x42c]
push ecx
call fcn.00401ce0
add esp, 8
mov dword [ebp - 0x440], eax
cmp dword [ebp - 0x440], 0
je 0x41f7ab
mov edx, dword [ebp - 0x440]
add edx, 0x12
push edx
call fcn.00403bb9
add esp, 4
mov ecx, dword [ebp - 0x678]
mov dword [ecx + 0x29b4], eax
jmp 0x41f7bb
mov edx, dword [ebp - 0x678]
mov dword [edx + 0x29b4], 0xfffffffe
push str.CYAN_TONER_LEVEL
mov eax, dword [ebp - 0x42c]
push eax
call fcn.00401ce0
add esp, 8
mov dword [ebp - 0x440], eax
cmp dword [ebp - 0x440], 0
je 0x41f7fe
mov ecx, dword [ebp - 0x440]
add ecx, 0x11
push ecx
call fcn.00403bb9
add esp, 4
mov edx, dword [ebp - 0x678]
mov dword [edx + 0x29b8], eax
jmp 0x41f80e
mov eax, dword [ebp - 0x678]
mov dword [eax + 0x29b8], 0xfffffffe
push str.MAGENTA_TONER_LEVEL
mov ecx, dword [ebp - 0x42c]
push ecx
call fcn.00401ce0
add esp, 8
mov dword [ebp - 0x440], eax
cmp dword [ebp - 0x440], 0
je 0x41f851
mov edx, dword [ebp - 0x440]
add edx, 0x14
push edx
call fcn.00403bb9
add esp, 4
mov ecx, dword [ebp - 0x678]
mov dword [ecx + 0x29bc], eax
jmp 0x41f861
mov edx, dword [ebp - 0x678]
mov dword [edx + 0x29bc], 0xfffffffe
push str.YELLOW_TONER_LEVEL
mov eax, dword [ebp - 0x42c]
push eax
call fcn.00401ce0
add esp, 8
mov dword [ebp - 0x440], eax
cmp dword [ebp - 0x440], 0
je 0x41f8a4
mov ecx, dword [ebp - 0x440]
add ecx, 0x13
push ecx
call fcn.00403bb9
add esp, 4
mov edx, dword [ebp - 0x678]
mov dword [edx + 0x29c0], eax
jmp 0x41f8b4
mov eax, dword [ebp - 0x678]
mov dword [eax + 0x29c0], 0xfffffffe
push 0
push 0
push 0x438018
mov ecx, dword [ebp - 0x678]
add ecx, 0x40c8
call fcn.0042e720
push eax
push 0x40
mov ecx, dword [ebp - 0x678]
add ecx, 0x29c8
push ecx
call fcn.004023ae
add esp, 0xc
push 0
push 0
push 0x43803c
mov ecx, dword [ebp - 0x678]
add ecx, 0x40c8
call fcn.0042e720
push eax
push 0x40
mov edx, dword [ebp - 0x678]
add edx, 0x2a48
push edx
call fcn.004023ae
add esp, 0xc
push 0
push 0
push 0x438060
mov ecx, dword [ebp - 0x678]
add ecx, 0x40c8
call fcn.0042e720
push eax
push 0x40
mov eax, dword [ebp - 0x678]
add eax, 0x2ac8
push eax
call fcn.004023ae
add esp, 0xc
push 0
push 0
push 0x438084
mov ecx, dword [ebp - 0x678]
add ecx, 0x40c8
call fcn.0042e720
push eax
push 0x40
mov ecx, dword [ebp - 0x678]
add ecx, 0x2b48
push ecx
call fcn.004023ae
add esp, 0xc
push str.ENGINE_VERSION
mov edx, dword [ebp - 0x42c]
push edx
call fcn.00401ce0
add esp, 8
mov dword [ebp - 0x440], eax
cmp dword [ebp - 0x440], 0
jbe 0x41fa1c
mov eax, dword [ebp - 0x440]
add eax, 0xf
mov dword [ebp - 0x440], eax
push 3
push 0x4380b8
mov ecx, dword [ebp - 0x440]
push ecx
call fcn.004035da
add esp, 0xc
test eax, eax
je 0x41fa15
push 3
push 0x4380bc
mov edx, dword [ebp - 0x440]
push edx
call fcn.004035da
add esp, 0xc
test eax, eax
je 0x41fa15
push 8
push str.132_02KM
mov eax, dword [ebp - 0x440]
push eax
call fcn.004035da
add esp, 0xc
test eax, eax
je 0x41fa15
push 3
push 0x4380cc
mov ecx, dword [ebp - 0x440]
push ecx
call fcn.004035da
add esp, 0xc
test eax, eax
jne 0x41fa1c
xor eax, eax
jmp 0x41ff4a
push 0x208
push 0
lea edx, [ebp - 0x648]
push edx
call fcn.00401f60
add esp, 0xc
mov eax, dword [ebp - 0x678]
add eax, 0x4808
push eax
push 0x104
lea ecx, [ebp - 0x648]
push ecx
push 0x4380d0
push 0x4380d4
mov edx, dword [ebp - 0x678]
add edx, 0x2bcc
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [ebp - 0x648]
push eax
call fcn.00402006
add esp, 4
test eax, eax
jbe 0x41faa9
mov ecx, dword [ebp - 0x678]
add ecx, 0x4808
push ecx
push 1
push 0x4380e4
lea edx, [ebp - 0x648]
push edx
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x678]
mov dword [ecx + 0x29c4], eax
jmp 0x41fadb
mov edx, dword [ebp - 0x678]
add edx, 0x4808
push edx
push 1
push str.Toner
mov eax, dword [ebp - 0x678]
add eax, 0x2bcc
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ecx, dword [ebp - 0x678]
mov dword [ecx + 0x29c4], eax
mov dword [ebp - 8], 0xffffffff
mov dword [ebp - 4], 0
mov dword [ebp - 0x43c], 0
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x438], 0
mov edx, dword [ebp - 0x678]
add edx, 0x2e38
push edx
push str.SoftwareKyocera_MitaStatusMonitor_s
push 0x208
lea eax, [ebp - 0x420]
push eax
call fcn.00402385
add esp, 0x10
lea ecx, [ebp - 0x430]
push ecx
lea edx, [ebp - 0x424]
push edx
push 0
push 0x2001f
push 0
push 0
push 0
lea eax, [ebp - 0x420]
push eax
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jl 0x41ff48
mov dword [ebp - 0x64c], 4
mov dword [ebp - 0x674], 4
push 0x10
push 0
lea ecx, [ebp - 0x65c]
push ecx
call fcn.00401f60
add esp, 0xc
lea edx, [ebp - 0x674]
push edx
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 0x64c]
push ecx
push 0
push 0x438160
mov edx, dword [ebp - 0x424]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jge 0x41fbba
mov dword [ebp - 8], 0xffffffff
lea eax, [ebp - 0x674]
push eax
lea ecx, [ebp - 4]
push ecx
lea edx, [ebp - 0x64c]
push edx
push 0
push 0x438170
mov eax, dword [ebp - 0x424]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jge 0x41fbeb
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x674]
push ecx
lea edx, [ebp - 0x43c]
push edx
lea eax, [ebp - 0x64c]
push eax
push 0
push 0x438180
mov ecx, dword [ebp - 0x424]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jge 0x41fc22
mov dword [ebp - 0x43c], 0
lea edx, [ebp - 0x674]
push edx
lea eax, [ebp - 0x428]
push eax
lea ecx, [ebp - 0x64c]
push ecx
push 0
push 0x438190
mov edx, dword [ebp - 0x424]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jge 0x41fc59
mov dword [ebp - 0x428], 0
lea eax, [ebp - 0x674]
push eax
lea ecx, [ebp - 0x438]
push ecx
lea edx, [ebp - 0x64c]
push edx
push 0
push 0x4381a0
mov eax, dword [ebp - 0x424]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jge 0x41fc90
mov dword [ebp - 0x438], 0
mov dword [ebp - 0x64c], 3
mov dword [ebp - 0x674], 0x10
lea ecx, [ebp - 0x674]
push ecx
lea edx, [ebp - 0x65c]
push edx
lea eax, [ebp - 0x64c]
push eax
push 0
push 0x4381b0
mov ecx, dword [ebp - 0x424]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jge 0x41fce4
push 0x10
push 0
lea edx, [ebp - 0x65c]
push edx
call fcn.00401f60
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x660], eax
lea eax, [ebp - 0x670]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx ecx, word [ebp - 0x65c]
test ecx, ecx
je 0x41fdf0
movzx edx, word [ebp - 0x65a]
movzx eax, word [ebp - 0x66e]
cmp edx, eax
jne 0x41fdf0
movzx ecx, word [ebp - 0x656]
movzx edx, word [ebp - 0x66a]
cmp ecx, edx
jne 0x41fdf0
movzx eax, word [ebp - 0x656]
movzx ecx, word [ebp - 0x66a]
cmp eax, ecx
jne 0x41fda3
movzx ecx, word [ebp - 0x668]
imul ecx, ecx, 0x3c
imul ecx, ecx, 0x3c
movzx edx, word [ebp - 0x666]
imul edx, edx, 0x3c
add ecx, edx
movzx eax, word [ebp - 0x664]
add ecx, eax
movzx edx, word [ebp - 0x654]
imul edx, edx, 0x3c
imul edx, edx, 0x3c
movzx eax, word [ebp - 0x652]
imul eax, eax, 0x3c
add edx, eax
movzx eax, word [ebp - 0x650]
add edx, eax
sub ecx, edx
mov eax, dword [ebp - 0x660]
xor edx, edx
mov esi, 0x3e8
div esi
cmp ecx, eax
ja 0x41fdf0
mov ecx, dword [ebp - 0x678]
mov edx, dword [ebp - 0x43c]
cmp edx, dword [ecx + 0x29b8]
jne 0x41fdf0
mov eax, dword [ebp - 0x678]
mov ecx, dword [ebp - 0x428]
cmp ecx, dword [eax + 0x29bc]
jne 0x41fdf0
mov edx, dword [ebp - 0x678]
mov eax, dword [ebp - 0x438]
cmp eax, dword [edx + 0x29c0]
jne 0x41fdf0
mov ecx, dword [ebp - 0x678]
mov edx, dword [ebp - 4]
cmp edx, dword [ecx + 0x29b4]
je 0x41fe6a
mov eax, dword [ebp - 0x678]
cmp dword [eax + 0x29c4], 4
jne 0x41fe4c
mov ecx, dword [ebp - 0x678]
cmp dword [ecx + 0x29b4], 0xfffffffe
je 0x41fe3b
mov edx, dword [ebp - 0x678]
cmp dword [edx + 0x29b8], 0xfffffffe
je 0x41fe3b
mov eax, dword [ebp - 0x678]
cmp dword [eax + 0x29bc], 0xfffffffe
je 0x41fe3b
mov ecx, dword [ebp - 0x678]
cmp dword [ecx + 0x29c0], 0xfffffffe
jne 0x41fe4a
push 0
push 0x32
mov ecx, dword [ebp - 0x678]
call fcn.0041ead0
jmp 0x41fe6a
mov eax, dword [ebp - 0x678]
cmp dword [eax + 0x29b4], 0xfffffffe
jne 0x41fe6a
push 0
push 0x32
mov ecx, dword [ebp - 0x678]
call fcn.0041ead0
push 4
lea edx, [ebp - 0x660]
push edx
push 4
push 0
push 0x4381c0
mov eax, dword [ebp - 0x424]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 4
mov ecx, dword [ebp - 0x678]
add ecx, 0x29b4
push ecx
push 4
push 0
push str.TonerB
mov edx, dword [ebp - 0x424]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 4
mov eax, dword [ebp - 0x678]
add eax, 0x29b8
push eax
push 4
push 0
push str.TonerC
mov ecx, dword [ebp - 0x424]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 4
mov edx, dword [ebp - 0x678]
add edx, 0x29bc
push edx
push 4
push 0
push str.TonerM
mov eax, dword [ebp - 0x424]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 4
mov ecx, dword [ebp - 0x678]
add ecx, 0x29c0
push ecx
push 4
push 0
push str.TonerY
mov edx, dword [ebp - 0x424]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 0x10
lea eax, [ebp - 0x670]
push eax
push 3
push 0
push str.TonerT
mov ecx, dword [ebp - 0x424]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edx, dword [ebp - 0x424]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
pop esi
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.00401f44
mov esp, ebp
pop ebp
ret 8