Function at 0x140109fa0
Capabilities:
Read .ini file

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xc70]
sub rsp, 0xd70
mov rax, qword [0x1402a76c0]
xor rax, rsp
mov qword [rbp + 0xc60], rax
xor r12d, r12d
mov r13d, r12d
mov dword [rsp + 0x30], r12d
lea rdx, str.CBaseDlgSetAdditionalDriver::OnInitDialogForPCL
lea rcx, [rbp - 0x40]
call fcn.14001abe0
nop
lea rax, [0x1402a8360]
lea rsi, [0x1402bbdb0]
mov rcx, qword [0x1402a8360]
cmp rcx, rax
je 0x14010a03c
test byte [rcx + 0x1c], 1
je 0x14010a03c
mov r9, rsi
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
lea edx, [r12 + 0xf]
lea r8, [0x14025ff70]
mov rcx, qword [rcx + 0x10]
call fcn.140001ad0
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x40]
call fcn.1401e7e40
mov word [rsp + 0x34], r12w
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x78], xmm0
mov qword [rbp - 0x78], r12
lfence
mov ecx, 0x10025
call fcn.1401baa78
test rax, rax
je 0x14010aaef
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [rsp + 0x58], r14
mov qword [r14 - 8], rax
mov qword [rsp + 0x78], r14
lea rbx, [r14 + 0xfffe]
mov qword [rbp - 0x78], rbx
mov word [rsp + 0x50], r12w
cmp word [rsp + 0x34], r12w
jne 0x14010a0b7
xor edx, edx
mov r8d, 0xfffe
mov rcx, r14
call fcn.1401e7e40
jmp 0x14010a0c6
movzx eax, r12w
mov rdi, r14
mov ecx, 0x7fff
rep stosw word [rdi], ax
mov qword [rbp - 0x80], rbx
xor edx, edx
mov r8d, 0x800
lea rcx, [rbp + 0x460]
call fcn.1401e7e40
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x250]
call fcn.1401e7e40
lea rax, str.Driver_w32
mov qword [rbp + 0x20], rax
lea rax, str.Driver_x64
mov qword [rbp + 0x28], rax
lea rax, str.Driver_ARM64
mov qword [rbp + 0x30], rax
mov dword [rbp + 0x10], 8
mov dword [rbp + 0x14], 0x20
mov dword [rbp + 0x18], 0x40
mov rcx, qword [0x1402bbf50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x1400136d6.0]
mov rdi, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x18]
lea r8, [rbp + 0x460]
lea rdx, str.PortSelectCount
mov rcx, rdi
call qword [case.0x1400136d6.0]
lea rcx, [rbp + 0x460]
call fcn.1401f2dc0
mov ebx, eax
mov rcx, qword [0x1402bbf50]
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x18]
call qword [case.0x1400136d6.0]
mov rdi, rax
mov rcx, qword [rax]
lea edx, [rbx - 1]
mov rax, qword [rcx + 0x88]
mov rcx, rdi
call qword [case.0x1400136d6.0]
mov rbx, rax
mov rcx, qword [0x1402bbf50]
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x48]
call qword [case.0x1400136d6.0]
mov rdi, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x18]
lea r8, [rbp + 0x460]
lea rdx, str.ADDITIONALS
mov rcx, rdi
call qword [case.0x1400136d6.0]
lea rcx, [rbp + 0x460]
call fcn.1401f2dc0
mov dword [rsp + 0x30], eax
mov rcx, qword [0x1402bbf58]
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x18]
call qword [case.0x1400136d6.0]
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x170]
mov rcx, rdx
call qword [case.0x1400136d6.0]
mov rcx, qword [0x1402bbf50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x1400136d6.0]
mov rdi, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x18]
lea r8, [rbp + 0x40]
lea rdx, str.TEMPPATH
mov rcx, rdi
call qword [case.0x1400136d6.0]
lea r8, str.InsDrv.ini
mov edx, 0x104
lea rcx, [rbp + 0x40]
call fcn.1401ec614
call fcn.1401bb0c4
mov rcx, rax
test rax, rax
je 0x14010aaf5
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x40], rdi
mov rcx, qword [0x1402bbf50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400136d6.0]
mov r15, 0xffffffffffffffff
cmp dword [rax + 0xa64], 2
jne 0x14010a323
mov rcx, qword [0x1402bbf50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x1400136d6.0]
mov rbx, rax
mov edx, 1
sub edx, dword [rdi - 8]
mov ecx, dword [rdi - 0xc]
sub ecx, 0x400
or ecx, edx
jge 0x14010a2e0
mov edx, 0x400
lea rcx, [rsp + 0x40]
call fcn.140004e00
mov rdi, qword [rsp + 0x40]
mov rax, qword [rbx]
mov r8, rdi
lea rdx, str.SelDriverList
mov rcx, rbx
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
movsxd rdx, dword [rdi - 0xc]
mov rcx, rdi
call fcn.1401eca00
test eax, eax
js 0x14010ab00
cmp eax, dword [rdi - 0xc]
jg 0x14010ab00
mov dword [rdi - 0x10], eax
cdqe
mov word [rdi + rax*2], r12w
jmp 0x14010a349
lea rdx, [rbx + 8]
test rdx, rdx
jne 0x14010a331
mov r15d, r12d
jmp 0x14010a33c
inc r15
cmp word [rdx + r15*2], 0
jne 0x14010a331
mov r8d, r15d
lea rcx, [rsp + 0x40]
call fcn.140004e60
mov rdi, r12
mov qword [rsp + 0x48], r12
mov rax, qword [rbp + rdi*8 + 0x20]
mov qword [rsp + 0x68], rax
lea r9, [rbp + 0x40]
mov r8d, 0x7fff
mov rdx, r14
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
mov ebx, eax
call fcn.1401bb0c4
mov rdi, rax
test rax, rax
je 0x14010aae4
test r14, r14
je 0x14010ab4c
mov rcx, qword [rax]
mov rax, qword [rcx]
mov edx, 0x7fff
mov r8d, 2
mov rcx, rdi
call qword [case.0x1400136d6.0]
mov r12, rax
mov qword [rbp - 0x70], rax
test rax, rax
je 0x14010ab46
lea rdi, [rax + 0x18]
mov qword [rsp + 0x70], rdi
cmp dword [rax + 0xc], 0x7fff
jl 0x14010ab4c
mov dword [rax + 8], 0x7fff
xor r15d, r15d
mov word [rax + 0x10016], r15w
test rdi, rdi
jne 0x14010a3f6
call fcn.1401ec568
mov dword [rax], socket
call fcn.1401ec3fc
jmp 0x14010a408
mov r8d, 0xfffe
mov rdx, r14
mov rcx, rdi
call fcn.1401e7770
nop
call fcn.1401bb0c4
mov rcx, rax
test rax, rax
je 0x14010ab3b
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea rcx, [rbp - 0x68]
call fcn.1401c8bf0
nop
test ebx, ebx
je 0x14010a876
mov esi, r15d
cmp r15d, dword [r12 + 8]
jge 0x14010a68e
lea rcx, [rdi + rsi*2]
xor edx, edx
call fcn.1401e71f4
mov r14, rax
test rax, rax
je 0x14010a68e
sub r14, rdi
sar r14, 1
test r14d, r14d
jle 0x14010a68e
lea r15d, [r14 + 1]
xor r8d, r8d
mov ecx, r8d
test r15d, r15d
cmovns ecx, r15d
mov eax, 0x7fffffff
sub eax, esi
cmp eax, ecx
jl 0x14010ab27
lea eax, [rcx + rsi]
mov edx, dword [r12 + 8]
cmp eax, edx
jle 0x14010a4a5
mov ecx, edx
sub ecx, esi
mov ebx, r8d
cmp esi, edx
cmovle ebx, ecx
test esi, esi
jne 0x14010a4cc
cmp ebx, edx
jne 0x14010a4cc
lea rcx, [rdi - 0x18]
call fcn.140004d00
lea rdi, [rax + 0x18]
mov qword [rsp + 0x60], rdi
jmp 0x14010a5b0
mov rcx, qword [rdi - 0x18]
test rcx, rcx
je 0x14010a4f3
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400136d6.0]
mov rcx, rax
test rax, rax
je 0x14010a4f3
lea r12, [rdi + rsi*2]
mov rsi, r12
jmp 0x14010a51e
call fcn.1401bb0c4
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x20]
mov rcx, rdx
call qword [case.0x1400136d6.0]
mov rcx, rax
lea r12, [rdi + rsi*2]
mov rsi, r12
test rax, rax
je 0x14010ab1c
test rsi, rsi
jne 0x14010a52b
test ebx, ebx
jne 0x14010ab0b
lfence
mov rax, qword [rcx]
mov r8d, 2
mov edx, ebx
mov rax, qword [rax]
call qword [case.0x1400136d6.0]
test rax, rax
je 0x14010ab16
lea rdi, [rax + 0x18]
mov qword [rsp + 0x60], rdi
test ebx, ebx
js 0x14010ab0b
cmp ebx, dword [rdi - 0xc]
jg 0x14010ab0b
mov dword [rdi - 0x10], ebx
movsxd rax, ebx
lea r8, [rax + rax]
xor eax, eax
mov word [r8 + rdi], ax
test r8, r8
je 0x14010a5ac
mov rcx, rdi
test rsi, rsi
je 0x14010a590
lfence
mov rdx, rsi
call fcn.1401e7770
jmp 0x14010a5ac
xor edx, edx
call fcn.1401e7e40
test r12, r12
jne 0x14010a5ac
call fcn.1401ec568
mov dword [rax], socket
call fcn.1401ec3fc
mov r12, qword [rbp - 0x70]
or r13d, 1
lea rcx, [rdi - 0x18]
mov rbx, qword [rsp + 0x38]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x14010a61e
cmp dword [rbx + 0x10], 0
jl 0x14010a60c
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x14010a60c
call fcn.140004d00
mov rdi, rax
mov ecx, 0xffffffff
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14010a601
lfence
mov rcx, qword [rbx]
mov rdx, qword [rcx]
mov rax, qword [rdx + 8]
mov rdx, rbx
call qword [case.0x1400136d6.0]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x38], rax
jmp 0x14010a61e
mov r8d, dword [rdi - 0x10]
mov rdx, rdi
lea rcx, [rsp + 0x38]
call fcn.140004e60
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14010a649
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
mov rax, qword [rsp + 0x38]
cmp dword [rax - 0x10], 1
jl 0x14010a68e
lea r8, [rsp + 0x38]
mov rdx, qword [rbp - 0x58]
lea rcx, [rbp - 0x68]
call fcn.1401c9128
test r15d, r15d
js 0x14010ab0b
cmp r15d, dword [r12 + 8]
jg 0x14010ab0b
movsxd rax, r14d
mov rdi, qword [rsp + 0x70]
cmp word [rdi + rax*2 + 2], 0
jne 0x14010a441
xor eax, eax
mov r14d, eax
mov esi, eax
mov rcx, qword [rbp - 0x58]
test rcx, rcx
jle 0x14010a778
lea r15, [rax - 1]
lea r12, [0x1402bbdb0]
nop dword [rax]
test rsi, rsi
js 0x14010ab35
cmp rsi, rcx
jge 0x14010ab35
lfence
mov rax, qword [rbp - 0x60]
mov rcx, qword [rax + rsi*8]
sub rcx, 0x18
call fcn.140004d00
lea rdi, [rax + 0x18]
mov rbx, qword [rsp + 0x40]
mov rcx, qword [0x1402a8360]
lea rax, [0x1402a8360]
cmp rcx, rax
je 0x14010a72a
test byte [rcx + 0x1c], 4
je 0x14010a72a
mov r9, r12
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, reloc.WSOCK32.dll_recv
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rdi
lea r8, [0x14025ff70]
mov rcx, qword [rcx + 0x10]
call fcn.14002fbe0
mov rdx, rbx
mov rcx, rdi
call fcn.1401e7270
test rax, rax
jne 0x14010a7f6
lea rdx, [rdi - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14010a762
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
inc r14d
inc rsi
movsxd rax, r14d
mov rcx, qword [rbp - 0x58]
cmp rax, rcx
jl 0x14010a6b0
mov rcx, qword [0x1402a8360]
lea rbx, [0x1402a8360]
lea rsi, [0x1402bbdb0]
cmp rcx, rbx
je 0x14010a7d4
test byte [rcx + 0x1c], 4
je 0x14010a7d4
mov r9, rsi
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, send
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r8, [0x14025ff70]
mov rcx, qword [rcx + 0x10]
call fcn.14002fbe0
mov rdi, qword [rsp + 0x48]
mov eax, dword [rbp + rdi*4 + 0x10]
not eax
mov r12d, dword [rsp + 0x30]
and r12d, eax
mov dword [rsp + 0x30], r12d
mov r14, qword [rsp + 0x58]
jmp 0x14010a887
mov rcx, qword [0x1402a8360]
lea rax, [0x1402a8360]
lea rsi, [0x1402bbdb0]
cmp rcx, rax
je 0x14010a84d
test byte [rcx + 0x1c], 4
je 0x14010a84d
mov r9, rsi
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, reloc.COMCTL32.dll_InitCommonControls
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
lea r8, [0x14025ff70]
mov rcx, qword [rcx + 0x10]
call fcn.14002fbe0
lea rdx, [rdi - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14010a871
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
mov r14, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x48]
mov r12d, dword [rsp + 0x30]
lea rbx, [0x1402a8360]
lea rcx, [rbp - 0x68]
call fcn.1401c8c10
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov r15, 0xffffffffffffffff
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14010a8c2
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14010a8eb
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
inc rdi
mov qword [rsp + 0x48], rdi
cmp rdi, 3
jl 0x14010a351
mov rcx, qword [0x1402a8360]
cmp rcx, rbx
je 0x14010a93c
test byte [rcx + 0x1c], 4
je 0x14010a93c
mov r9, rsi
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, reloc.WSOCK32.dll_send
mov dword [rsp + 0x20], r12d
lea r8, [0x14025ff70]
mov rcx, qword [rcx + 0x10]
call fcn.140001b40
mov dword [rsp + 0x20], r12d
lea r9, [0x1402524b4]
mov r8, r15
mov edx, 0x104
lea rcx, [rbp + 0x250]
call fcn.140051530
mov rcx, qword [0x1402bbf50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x48]
call qword [case.0x1400136d6.0]
mov rdi, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x20]
lea r8, [rbp + 0x250]
lea rdx, str.ADDITIONALS
mov rcx, rdi
call qword [case.0x1400136d6.0]
mov byte [rbp - 0x38], 1
mov rcx, qword [0x1402a8360]
cmp rcx, rbx
je 0x14010a9d8
test byte [rcx + 0x1c], 1
je 0x14010a9d8
mov r9, rsi
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, socket
mov dword [rsp + 0x20], 1
lea r8, [0x14025ff70]
mov rcx, qword [rcx + 0x10]
call fcn.140001b40
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x14010aa01
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
mov rax, qword [rbp - 0x78]
mov rcx, qword [rsp + 0x78]
sub rax, rcx
sar rax, 1
lea rdx, [rax + rax]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14010aa39
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14010aaef
call fcn.1400079c0
nop
lea rax, vtable.WppTrace.0
mov qword [rbp - 0x40], rax
cmp byte [rbp - 0x38], 0
jne 0x14010aa9d
mov rcx, qword [0x1402a8360]
cmp rcx, rbx
je 0x14010aa9d
test byte [rcx + 0x1c], 1
je 0x14010aa9d
lea rdi, [rbp - 0x30]
cmp qword [rbp - 0x18], 8
cmovae rdi, qword [rbp - 0x30]
cmp qword [0x1402bbdc8], 8
cmovae rsi, qword [0x1402bbdb0]
mov edx, 0xa
mov qword [rsp + 0x20], rdi
mov r9, rsi
lea r8, [0x140252818]
mov rcx, qword [rcx + 0x10]
call fcn.140006c90
lea rcx, [rbp - 0x10]
call fcn.1400048a0
lea rcx, [rbp - 0x30]
call fcn.1400048a0
mov eax, 1
mov rcx, qword [rbp + 0xc60]
xor rcx, rsp
call fcn.1401e2900
lea r11, [rsp + 0xd70]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov ecx, 0x80004005
call fcn.140001470
nop
call fcn.1401ec41c
nop
mov ecx, 0x80004005
call fcn.140001470
nop
mov ecx, 0x80070057
call fcn.140001470
nop
mov ecx, 0x80070057
call fcn.140001470
int3
call fcn.1400051f0
int3
mov ecx, 0x80004005
call fcn.140001470
int3
lfence
mov ecx, 0x80070216
call fcn.140001470
int3
call fcn.1401bb848
nop
mov ecx, 0x80004005
call fcn.140001470
nop
call fcn.1400051f0
int3
mov ecx, 0x80070057
call fcn.140001470
int3