Function at 0x41fa25
Capabilities:
Get common file path
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45ff9d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x154
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x18], str.MustekSystemSW_ImgFileName
mov dword [ebp - 0x14], 0x479974
mov dword [ebp - 0x14], str.SoftwareMustekSystem
lea eax, [ebp - 0x134]
push eax
push 0x20006
push 0
mov ecx, dword [ebp - 0x14]
push ecx
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
je 0x41fa8c
jmp 0x41fa9e
mov edx, dword [ebp - 0x134]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x41ff55
mov dword [ebp - 0x14], 0x479978
mov dword [ebp - 0x14], str.Software
lea eax, [ebp - 0x134]
push eax
push 0x20006
push 0
mov ecx, dword [ebp - 0x14]
push ecx
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
je 0x41faea
mov edx, dword [ebp - 0x134]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x41ff55
lea eax, [ebp - 0x138]
push eax
lea ecx, [ebp - 0x124]
push ecx
push 0
push 0xf003f
push 0
push 0
push 0
mov edx, dword [ebp - 0x18]
push edx
mov eax, dword [ebp - 0x134]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
je 0x41fb37
mov ecx, dword [ebp - 0x134]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x41ff55
mov dword [ebp - 0x18], 0x47997c
mov dword [ebp - 0x18], str.MustekSystemHW_ImgFileName
lea edx, [ebp - 0x138]
push edx
lea eax, [ebp - 0x124]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x134]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
je 0x41fb92
mov eax, dword [ebp - 0x134]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x41ff55
mov dword [ebp - 0x18], 0x479980
mov dword [ebp - 0x18], str.MustekSystemDocFileName
lea ecx, [ebp - 0x138]
push ecx
lea edx, [ebp - 0x124]
push edx
push 0
push 0xf003f
push 0
push 0
push 0
mov eax, dword [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x134]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
je 0x41fbed
mov edx, dword [ebp - 0x134]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x41ff55
mov dword [ebp - 0x14], 0x479984
mov dword [ebp - 0x14], 0x474a7c
lea eax, [ebp - 0x134]
push eax
push 0x20006
push 0
mov ecx, dword [ebp - 0x14]
push ecx
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x12c], eax
push 0x479988
lea ecx, [ebp - 0x130]
call fcn.0045518e
mov dword [ebp - 4], 0
push 0
push 5
lea edx, [ebp - 0x120]
push edx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
test eax, eax
je 0x41fc5e
lea eax, [ebp - 0x120]
push eax
lea ecx, [ebp - 0x130]
call fcn.004552a9
lea ecx, [ebp - 0x1c]
call fcn.00402210
mov byte [ebp - 4], 1
push str.SWScan.tif
lea ecx, [ebp - 0x130]
push ecx
lea edx, [ebp - 0x13c]
push edx
call fcn.004553b5
mov dword [ebp - 0x14c], eax
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0x150], eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x150]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00455259
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x13c]
call fcn.00455120
push 0
lea ecx, [ebp - 0x1c]
call fcn.004554dc
mov dword [ebp - 0x10], eax
mov edx, dword [ebp - 0x10]
push edx
call fcn.004431c0
add esp, 4
mov dword [ebp - 0x128], eax
mov eax, dword [ebp - 0x128]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
push 1
push 0
push 0x474ab0
mov edx, dword [ebp - 0x134]
push edx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
je 0x41fd35
mov eax, dword [ebp - 0x134]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.00455120
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x130]
call fcn.00455120
jmp 0x41ff55
mov dword [ebp - 0x14], 0x47998c
mov dword [ebp - 0x14], str.SoftwareMustekSystemHW_ImgFileName
lea ecx, [ebp - 0x134]
push ecx
push 0x20006
push 0
mov edx, dword [ebp - 0x14]
push edx
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x12c], eax
push str.HWScan.bmp
lea eax, [ebp - 0x130]
push eax
lea ecx, [ebp - 0x140]
push ecx
call fcn.004553b5
mov dword [ebp - 0x154], eax
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x158], edx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x158]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00455259
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x140]
call fcn.00455120
push 0
lea ecx, [ebp - 0x1c]
call fcn.004554dc
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
push ecx
call fcn.004431c0
add esp, 4
mov dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x128]
push edx
mov eax, dword [ebp - 0x10]
push eax
push 1
push 0
push 0x474af0
mov ecx, dword [ebp - 0x134]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
je 0x41fe31
mov edx, dword [ebp - 0x134]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.00455120
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x130]
call fcn.00455120
jmp 0x41ff55
mov dword [ebp - 0x14], 0x479990
mov dword [ebp - 0x14], 0x474afc
lea eax, [ebp - 0x134]
push eax
push 0x20006
push 0
mov ecx, dword [ebp - 0x14]
push ecx
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov dword [ebp - 0x12c], eax
push str.OCR.doc
lea edx, [ebp - 0x130]
push edx
lea eax, [ebp - 0x144]
push eax
call fcn.004553b5
mov dword [ebp - 0x15c], eax
mov ecx, dword [ebp - 0x15c]
mov dword [ebp - 0x160], ecx
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x160]
push edx
lea ecx, [ebp - 0x1c]
call fcn.00455259
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x144]
call fcn.00455120
push 0
lea ecx, [ebp - 0x1c]
call fcn.004554dc
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
push eax
call fcn.004431c0
add esp, 4
mov dword [ebp - 0x128], eax
mov ecx, dword [ebp - 0x128]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push 1
push 0
push 0x474b2c
mov eax, dword [ebp - 0x134]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0
je 0x41ff2a
mov ecx, dword [ebp - 0x134]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.00455120
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x130]
call fcn.00455120
jmp 0x41ff55
mov edx, dword [ebp - 0x134]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.00455120
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x130]
call fcn.00455120
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret