Function at 0x140001a20
Capabilities:
Read .ini file

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov r14, r8
mov r13, rdx
xor esi, esi
mov dword [rax + 0x20], esi
call fcn.1400280cc
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x140001a71
mov ecx, 0x80004005
call fcn.140003280
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [r13], rax
lea rdx, [0x14007e0d8]
mov r12, rdx
or rbp, 0xffffffffffffffff
shr r12, 0x10
jne 0x140001ab5
movzx edi, dx
mov ecx, edi
call fcn.1400280b8
test rax, rax
je 0x140001ad0
mov r8d, edi
mov rdx, rax
mov rcx, r13
call fcn.140003060
jmp 0x140001ad0
xor eax, eax
mov rcx, rbp
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rcx, r13
call fcn.1400036f0
nop
mov r15d, 1
mov dword [rsp + 0xc8], r15d
mov rdi, qword [r14]
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi - 8], 0
jl 0x140001b05
cmp rax, qword [rdi - 0x18]
jne 0x140001b05
lea rbx, [rdi - 0x18]
lock add dword [rdi - 8], r15d
jmp 0x140001b43
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi - 0x10]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x140001b21
call fcn.140003050
int3
mov eax, dword [rdi - 0x10]
mov dword [rbx + 8], eax
mov eax, dword [rdi - 0x10]
add eax, r15d
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, rdi
add rdx, rdx
lea rcx, [rbx + 0x18]
call fcn.1400525a0
lea rax, [rbx + 0x18]
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0x40]
call fcn.140006cb0
nop
mov rax, qword [rsp + 0x40]
cmp dword [rax - 0x10], 0
je 0x140001f8f
call fcn.1400280cc
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x140001b8a
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
test r12, r12
jne 0x140001bce
lea rax, [0x14007e0d8]
movzx edi, ax
mov ecx, edi
call fcn.1400280b8
test rax, rax
je 0x140001bf6
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140003060
mov rbx, qword [rsp + 0x30]
jmp 0x140001bf6
xor eax, eax
mov rcx, rbp
lea rdx, [0x14007e0d8]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x30]
call fcn.1400036f0
mov rbx, qword [rsp + 0x30]
mov rdi, qword [r14]
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi - 8], 0
jl 0x140001c22
cmp rax, qword [rdi - 0x18]
jne 0x140001c22
lea r12, [rdi - 0x18]
lock add dword [rdi - 8], 1
mov rbx, qword [rsp + 0x30]
jmp 0x140001c63
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi - 0x10]
call qword [rax]
mov r12, rax
test rax, rax
jne 0x140001c3e
call fcn.140003050
int3
mov eax, dword [rdi - 0x10]
mov dword [r12 + 8], eax
mov eax, dword [rdi - 0x10]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, rdi
add rdx, rdx
lea rcx, [r12 + 0x18]
call fcn.1400525a0
lea rax, [r12 + 0x18]
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x50]
call fcn.140006fb0
test eax, eax
je 0x140001d14
mov rdi, qword [rsp + 0x40]
mov ecx, r15d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x101
or eax, ecx
jge 0x140001caa
mov edx, 0x101
lea rcx, [rsp + 0x30]
call fcn.140003380
mov rbx, qword [rsp + 0x30]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x101
mov r9, rbx
lea r8, [0x14007e0d8]
lea rdx, str.AppLogModule
lea rcx, str.CommonDrvInfo
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test rbx, rbx
je 0x140001cf3
xor eax, eax
mov rcx, rbp
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov rsi, rcx
test ecx, ecx
js 0x140001d09
cmp esi, dword [rbx - 0xc]
jg 0x140001d09
mov dword [rbx - 0x10], esi
movsxd rax, esi
mov word [rbx + rax*2], 0
jmp 0x140001da0
mov ecx, 0x80070057
call fcn.140003280
int3
mov rdi, qword [rsp + 0x40]
mov ecx, r15d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x101
or eax, ecx
jge 0x140001d3f
mov edx, 0x101
lea rcx, [rsp + 0x30]
call fcn.140003380
mov rbx, qword [rsp + 0x30]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x101
mov r9, rbx
lea r8, [0x14007e0d8]
lea rdx, str.AppLogModule
lea rcx, str.User_Mode_Printer_Driver_Information
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test rbx, rbx
je 0x140001d8b
xor eax, eax
mov rcx, rbp
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov esi, ecx
test ecx, ecx
js 0x140001f84
cmp esi, dword [rbx - 0xc]
jg 0x140001f84
mov dword [rbx - 0x10], esi
movsxd rax, esi
mov word [rbx + rax*2], 0
cmp dword [rbx - 0x10], 0
je 0x140001f67
mov rdi, qword [rsp + 0x40]
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi - 8], 0
jl 0x140001dd3
cmp rax, qword [rdi - 0x18]
jne 0x140001dd3
lea rbx, [rdi - 0x18]
lock add dword [rdi - 8], 1
jmp 0x140001e11
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi - 0x10]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x140001def
call fcn.140003050
int3
mov eax, dword [rdi - 0x10]
mov dword [rbx + 8], eax
mov eax, dword [rdi - 0x10]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, rdi
add rdx, rdx
lea rcx, [rbx + 0x18]
call fcn.1400525a0
lea rax, [rbx + 0x18]
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x38]
call fcn.140006210
nop
mov rdx, qword [rsp + 0x38]
mov ebx, dword [rdx - 0x10]
lea eax, [rbx - 1]
test eax, eax
js 0x140001f5c
cmp eax, ebx
jg 0x140001f5c
cdqe
cmp word [rdx + rax*2], 0x5c
je 0x140001eec
xor eax, eax
mov rcx, rbp
lea r12, [0x14007e0bc]
mov rdi, r12
repne scasw ax, word [rdi]
not rcx
lea r14, [rcx - 1]
mov rsi, r12
sub rsi, rdx
sar rsi, 1
lea edi, [rbx + rcx - 1]
sub r15d, dword [rdx - 8]
mov eax, dword [rdx - 0xc]
sub eax, edi
or eax, r15d
jge 0x140001e97
mov edx, edi
lea rcx, [rsp + 0x38]
call fcn.140003380
mov rdx, qword [rsp + 0x38]
cmp rsi, rbx
ja 0x140001ea0
lea r12, [rdx + rsi*2]
movsxd rax, r14d
add rax, rax
lea rcx, [rdx + rbx*2]
mov r9, rax
mov r8, r12
mov rdx, rax
call fcn.1400525a0
test edi, edi
js 0x140001ee1
mov rax, qword [rsp + 0x38]
cmp edi, dword [rax - 0xc]
jg 0x140001ee1
mov dword [rax - 0x10], edi
movsxd rcx, edi
mov rax, qword [rsp + 0x38]
mov word [rax + rcx*2], 0
mov r14, qword [rsp + 0xc0]
jmp 0x140001eec
mov ecx, 0x80070057
call fcn.140003280
int3
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x60]
call fcn.140002b10
nop
mov rdx, rax
mov rcx, r13
call fcn.140003600
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140001f2e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140001f55
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x30]
jmp 0x140001f67
mov rbx, qword [rsp + 0x30]
jmp 0x140001f67
mov ecx, 0x80070057
call fcn.140003280
nop
lea rdx, [rbx - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140001f8f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140001f8f
mov ecx, 0x80070057
call fcn.140003280
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140001fb0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [r14]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x140001fcc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, r13
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret