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

Disassembly:
mov eax, 0x1034
call fcn.00407240
push ebx
push ebp
push esi
push edi
mov ecx, 8
mov esi, str.SOFTWARELexmarkLPSLocallxda
lea edi, [esp + 0x14]
xor eax, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, 0x39
lea edi, [esp + 0x34]
xor ebx, ebx
rep stosd dword es:[edi], eax
mov eax, dword [0x4135dc]
mov ecx, dword [0x413e24]
push ebx
push 0x4028d0
push eax
push 0x86
push ecx
call dword [sym.imp.USER32.dll_CreateDialogParamA]
mov edi, eax
test edi, edi
je 0x40327a
push 5
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea edx, [esp + 0x10]
push edx
push 0xf003f
lea eax, [esp + 0x1c]
push 0
push eax
push 0x80000002
call esi
mov ebp, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
test eax, eax
jne 0x4032b9
mov ecx, dword [esp + 0x10]
push str.InstallToPort
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
mov edx, dword [esp + 0x10]
push edx
call ebp
mov eax, dword [esp + 0x1048]
test eax, eax
je 0x4032f1
push 1
push 0x413a00
call fcn.00402ef0
add esp, 8
test eax, eax
jne 0x4032f1
push str.InstallLCNA_failed
call fcn.00406080
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1034
ret
lea eax, [esp + 0x340]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
je 0x40351f
lea ecx, [esp + 0x340]
push str.lxdacfg.exe
push ecx
lea edx, [esp + 0x120]
push 0x40f8fc
push edx
call fcn.00406f8b
lea eax, [esp + 0x350]
push str.lxdacfg.ini
push eax
lea ecx, [esp + 0x244]
push 0x40f8fc
push ecx
call fcn.00406f8b
lea edx, [esp + 0x24c]
lea eax, [esp + 0x864]
push edx
push str._n__s__install
push eax
call fcn.00406f8b
lea ecx, [esp + 0x144]
push ecx
call fcn.00404e80
add esp, 0x30
test eax, eax
jne 0x4033af
lea edx, [esp + 0x118]
lea eax, [esp + 0x444]
push edx
push str.Error:_Could_not_locate_config_utility:__s
push eax
call fcn.00406f8b
lea ecx, [esp + 0x450]
push ecx
call fcn.00406080
add esp, 0x10
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1034
ret
lea edx, [esp + 0x844]
lea eax, [esp + 0x118]
push edx
push eax
lea ecx, [esp + 0x44c]
push str.LCNA_Command_Line:__s__s
push ecx
call fcn.00406f8b
lea edx, [esp + 0x454]
push edx
call fcn.00406080
add esp, 0x14
push edi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4033f3
push edi
call dword [sym.imp.USER32.dll_DestroyWindow]
lea eax, [esp + 0x844]
lea ecx, [esp + 0x118]
push eax
push ecx
call fcn.00405850
add esp, 8
test eax, eax
jne 0x40341a
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1034
ret
lea edx, [esp + 0x10]
lea eax, [esp + 0x14]
push edx
push 0x20019
push 0
push eax
push 0x80000002
call esi
test eax, eax
jne 0x4034d4
lea ecx, [esp + 0x14]
lea edx, [esp + 0x444]
push ecx
push str.RegOpenKeyEx__s__success
push edx
call fcn.00406f8b
lea eax, [esp + 0x450]
push eax
call fcn.00406080
mov ecx, dword [esp + 0x20]
add esp, 0x10
push 0
push 0
push 0
push 0
push str.InstallToPort
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4034ab
push str.InstallToPort
lea edx, [esp + 0x448]
push str.RegQueryValueEx__s__success
push edx
call fcn.00406f8b
lea eax, [esp + 0x450]
push eax
call fcn.00406080
add esp, 0x10
mov ebx, 1
jmp 0x4034d4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea ecx, [esp + 0x448]
push str.Error:_RegQueryValueEx_failed:__u
push ecx
call fcn.00406f8b
lea edx, [esp + 0x450]
push edx
call fcn.00406080
add esp, 0x10
lea eax, [esp + 0x22c]
push eax
call fcn.00404e80
add esp, 4
test eax, eax
je 0x40351f
lea ecx, [esp + 0x22c]
lea edx, [esp + 0xc44]
push ecx
push 0x400
push edx
push str.Ports
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionA]
test eax, eax
jbe 0x403511
mov ebx, 1
lea eax, [esp + 0x22c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x40352b
push eax
call ebp
pop edi
pop esi
mov eax, ebx
pop ebp
pop ebx
add esp, 0x1034
ret