Function at 0x14001f1b0
Capabilities:
Read .ini file

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x70
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov r12, rdx
lea r14, [0x14007ee30]
mov qword [rsp + 0x58], r14
xor r13d, r13d
mov dword [rsp + 0x68], r13d
mov qword [rsp + 0x60], r13
call fcn.1400280cc
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001f208
mov ecx, 0x80004005
call fcn.140003280
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
call fcn.1400280cc
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001f23a
mov ecx, 0x80004005
call fcn.140003280
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xc8], rax
lea rdx, str.SoftwareEPSONEPSON_ScanSoftwareInfo
or rsi, 0xffffffffffffffff
test rdx, 0xffffffffffff0000
jne 0x14001f287
movzx edi, dx
mov ecx, edi
call fcn.1400280b8
test rax, rax
je 0x14001f2a7
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0xc8]
call fcn.140003060
jmp 0x14001f2a7
xor eax, eax
mov rcx, rsi
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0xc8]
call fcn.1400036f0
nop
call fcn.1400280cc
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001f2c7
mov ecx, 0x80004005
call fcn.140003280
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xc0], rax
lea rdx, str.Scanner
test rdx, 0xffffffffffff0000
jne 0x14001f310
movzx edi, dx
mov ecx, edi
call fcn.1400280b8
test rax, rax
je 0x14001f330
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.140003060
jmp 0x14001f330
xor eax, eax
mov rcx, rsi
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0xc0]
call fcn.1400036f0
nop
lea r8, [rsp + 0xc0]
lea rdx, [rsp + 0xc8]
lea rcx, [rsp + 0x40]
call fcn.140002b10
nop
mov rdx, qword [rax]
lea rdi, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rdi, rbx
je 0x14001f406
cmp dword [rbx + 0x10], 0
jl 0x14001f3f7
mov rcx, qword [rdi]
cmp rcx, qword [rbx]
jne 0x14001f3f7
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi + 0x10], 0
jl 0x14001f393
cmp rax, qword [rdi]
jne 0x14001f393
mov rbp, rdi
lock add dword [rdi + 0x10], 1
jmp 0x14001f3d2
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi + 8]
call qword [rax]
mov rbp, rax
test rax, rax
jne 0x14001f3af
call fcn.140003050
int3
mov eax, dword [rdi + 8]
mov dword [rbp + 8], eax
mov eax, dword [rdi + 8]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
lea r8, [rdi + 0x18]
add rdx, rdx
lea rcx, [rbp + 0x18]
call fcn.1400525a0
mov eax, esi
lock xadd dword [rbx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001f3ec
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbp + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x14001f406
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.1400036f0
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001f426
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov r9d, 0x20019
xor r8d, r8d
mov rdx, qword [rsp + 0x30]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ecx, r13d
test eax, eax
sete cl
mov dword [rsp + 0x68], ecx
mov dword [rsp + 0x6c], 0x20019
test ecx, ecx
je 0x14001f64e
call fcn.1400280cc
mov rdx, rax
mov ecx, r13d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001f487
mov ecx, 0x80004005
call fcn.140003280
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea rdx, [0x14007e0d8]
test rdx, 0xffffffffffff0000
jne 0x14001f4ca
movzx edi, dx
mov ecx, edi
call fcn.1400280b8
test rax, rax
je 0x14001f4e7
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140003060
jmp 0x14001f4e7
xor eax, eax
mov rcx, rsi
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x38]
call fcn.1400036f0
nop
mov dword [rsp + 0x20], r13d
lea r9, [rsp + 0x38]
mov r8, qword [r12]
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x58]
call fcn.14000d140
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001f525
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rsp + 0x48]
cmp dword [rdi - 0x10], 0
je 0x14001f618
mov r9, rdi
xor r8d, r8d
lea rdx, str.DisableUpdate
lea rcx, str.Control
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov ebx, eax
lea rdx, [rdi - 0x18]
mov ecx, esi
lock xadd dword [rdx + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x14001f56c
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xc0]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001f590
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xc8]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001f5b4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001f5d5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov qword [rsp + 0x58], r14
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14001f5ef
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x60], r13
mov dword [rsp + 0x68], r13d
mov rdx, qword [r12]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x14001f611
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, ebx
jmp 0x14001f6f5
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14001f62d
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x60], r13
mov dword [rsp + 0x68], r13d
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001f64e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xc0]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001f672
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xc8]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001f696
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001f6b7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov qword [rsp + 0x58], r14
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x14001f6d1
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x60], r13
mov dword [rsp + 0x68], r13d
mov rdx, qword [r12]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x14001f6f3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
add rsp, 0x70
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret