Function at 0x140098f30
Capabilities:
Read .ini file
Set file attributes

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2620]
mov eax, 0x2720
call fcn.14024c240
sub rsp, rax
mov qword [rbp - 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x2760], rbx
mov rax, qword [0x140398250]
xor rax, rsp
mov qword [rbp + 0x2610], rax
mov rsi, r9
mov qword [rbp - 0x40], r9
mov r13, r8
mov qword [rsp + 0x68], r8
mov rdi, rdx
mov qword [rbp - 0x38], rdx
xor r8d, r8d
lea rdx, str.CBaseFuncSub::FS_MoveInfFileFromInfToTemp_OtherPDL
lea rcx, [rsp + 0x38]
call fcn.1400075a0
nop
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r13
mov r9, rdi
lea r8, str.lpTempDir___s__lpINFDir___s__lpTmpINFDir___s
mov edx, 1
lea rcx, [rsp + 0x38]
call fcn.140007780
xor r13d, r13d
mov dword [rsp + 0x50], r13d
mov r12d, r13d
lea rcx, [rsp + 0x70]
call fcn.140105848
nop
lea rcx, [rbp - 0x68]
call fcn.140105848
nop
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
lea edx, [r13 + 4]
call qword [rax + 0x28]
mov rsi, rax
mov qword [rsp + 0x60], rax
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
lea edx, [r13 + 5]
call qword [rax + 0x28]
mov qword [rbp - 0x30], rax
test rsi, rsi
je 0x1400997db
test rax, rax
je 0x1400997db
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp - 0x20]
call fcn.14024b970
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x400]
call fcn.14024b970
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x1f0]
call fcn.14024b970
xor edx, edx
mov r8d, 0x2000
lea rcx, [rbp + 0x610]
call fcn.14024b970
or rbx, 0xffffffffffffffff
mov r8, rbx
xor edx, edx
lea rcx, [rbp - 0x68]
call fcn.140105958
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdi, qword [rax]
lea r8, [rbp - 0x20]
lea rdx, str.TEMPPATH
mov rcx, rax
call qword [rdi + 0x18]
lea rcx, [rbp - 0x20]
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
lea rdx, str.InsDrv.ini
lea rcx, [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea edx, [rbx + 0x21]
lea rcx, [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
lea r9, [rbp - 0x20]
mov r8d, 0x1000
lea rdx, [rbp + 0x610]
lea rcx, str.OtherPDLINF_Info
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileSectionW]
test eax, eax
jne 0x14009911c
xor r9d, r9d
lea r8, str.return___08x
lea edx, [rbx + 3]
lea rcx, [rsp + 0x38]
call fcn.140007780
nop
lea rcx, [rbp - 0x68]
call fcn.140105ce4
nop
lea rcx, [rsp + 0x70]
call fcn.140105ce4
nop
jmp 0x140099809
call fcn.140102a14
mov rcx, rax
mov eax, r13d
test rcx, rcx
setne al
test eax, eax
jne 0x14009913c
mov ecx, 0x80004005
call fcn.140005210
int3
mov rax, qword [rcx]
mov edx, 0x1000
mov r8d, 2
call qword [rax]
test rax, rax
jne 0x140099157
call fcn.140020970
int3
lea rcx, [rax + 0x18]
mov qword [rsp + 0x48], rcx
cmp dword [rcx - 0xc], 0x1000
jge 0x140099174
mov ecx, 0x80070057
call fcn.140005210
int3
mov dword [rcx - 0x10], 0x1000
mov word [rcx + 0x2000], r13w
mov r9d, 0x2000
lea r8, [rbp + 0x610]
mov edx, r9d
call fcn.1402471ac
nop
xor edx, edx
lea r8d, [rdx + 0xa]
lea rcx, [rsp + 0x48]
call fcn.140064b10
mov rdi, qword [rsp + 0x48]
cmp dword [rdi - 0x10], 0
jge 0x1400991b8
mov eax, ebx
jmp 0x1400991d6
lea rdx, [0x1402edb5c]
mov rcx, rdi
call fcn.140245e24
test rax, rax
jne 0x1400991d0
mov eax, ebx
jmp 0x1400991d6
sub rax, rdi
sar rax, 1
mov r8d, eax
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x48]
call fcn.14000d770
nop
mov r8d, 1
lea rdx, reloc.WSOCK32.dll_inet_addr
lea rcx, [rsp + 0x58]
call fcn.140005f90
mov r14d, r13d
mov rdi, qword [rsp + 0x58]
lea r15, [rdi - 0x10]
nop dword [rax]
test r12d, r12d
js 0x1400993bf
cmp r12d, dword [r15]
jg 0x1400993bf
movsxd r13, r12d
lea rcx, [rdi + r13*2]
lea rdx, reloc.WSOCK32.dll_inet_addr
call fcn.140245e24
mov rbx, rax
test rax, rax
je 0x1400993bb
sub rbx, rdi
sar rbx, 1
test ebx, ebx
jle 0x1400993bb
cmp r14d, 0x80
jge 0x1400993bb
mov r9d, ebx
sub r9d, r12d
mov r8d, r12d
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x58]
call fcn.14000d690
nop
mov rsi, qword [rsp + 0x30]
xor eax, eax
mov edi, eax
cmp word [rsi], ax
je 0x140099300
xor r13d, r13d
movzx ecx, word [rsi]
call fcn.14024644c
test eax, eax
je 0x14009929c
test rdi, rdi
jne 0x14009929f
mov rdi, rsi
jmp 0x14009929f
mov rdi, r13
add rsi, 2
cmp word [rsi], r13w
jne 0x140099286
movsxd r13, r12d
test rdi, rdi
je 0x140099300
mov rax, qword [rsp + 0x30]
sub rdi, rax
sar rdi, 1
test edi, edi
js 0x1400993b0
mov edx, 1
sub edx, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, edi
or ecx, edx
jge 0x1400992e6
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.140005e40
mov rax, qword [rsp + 0x30]
cmp edi, dword [rax - 0xc]
jg 0x1400993a5
mov dword [rax - 0x10], edi
movsxd rcx, edi
mov rax, qword [rsp + 0x30]
xor edx, edx
mov word [rax + rcx*2], dx
lea rcx, [rsp + 0x30]
call fcn.14000d590
mov r11, qword [rsp + 0x30]
cmp r12d, dword [r11 - 0x10]
jg 0x14009933b
lea rcx, [r11 + r13*2]
lea rdx, [0x1402fbacc]
call fcn.140245e24
mov r11, qword [rsp + 0x30]
test rax, rax
je 0x14009933b
sub rax, r11
sar rax, 1
test eax, eax
jne 0x14009933b
jmp 0x14009937a
xor eax, eax
lea rdi, [0x1402dc4e0]
mov rsi, r11
mov ecx, 1
repe cmpsw word [rsi], word [rdi]
je 0x140099356
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
setne al
test al, al
je 0x140099376
lea r8, [rsp + 0x30]
mov rdx, qword [rbp - 0x58]
lea rcx, [rbp - 0x68]
call fcn.140105e58
mov r11, qword [rsp + 0x30]
lea r12d, [rbx + 1]
or rbx, 0xffffffffffffffff
lea rdx, [r11 - 0x18]
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140099398
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
inc r14d
mov rdi, qword [rsp + 0x58]
jmp 0x140099210
mov ecx, 0x80070057
call fcn.140005210
int3
mov ecx, 0x80070057
call fcn.140005210
nop
or rbx, 0xffffffffffffffff
mov rsi, qword [rsp + 0x60]
mov rax, qword [rsi]
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rbp - 0x38]
mov rcx, rsi
call qword [rax + 0x18]
cmp eax, 1
jne 0x14009974e
mov rax, qword [rsi]
lea r8, [rbp + 0x400]
xor edx, edx
mov rcx, rsi
call qword [rax + 0x40]
mov r15, qword [rbp - 0x30]
mov rax, qword [r15]
mov r9d, 1
lea r8, [rbp + 0x400]
mov rdx, qword [rsp + 0x68]
mov rcx, r15
call qword [rax + 0x18]
mov dword [rsp + 0x60], eax
test eax, eax
jle 0x1400996be
xor ecx, ecx
mov r14d, ecx
test eax, eax
jle 0x140099619
nop word [rax + rax]
mov r8, rbx
xor edx, edx
lea rcx, [rsp + 0x70]
call fcn.140105958
mov rax, qword [r15]
xor r9d, r9d
mov r8d, r14d
lea rdx, [rsp + 0x70]
mov rcx, r15
call qword [rax + 0x30]
xor r11d, r11d
mov r13d, r11d
mov ebx, r11d
mov r9, qword [rbp - 0x80]
test r9, r9
jle 0x1400995e3
mov eax, r11d
nop dword [rax]
test rax, rax
js 0x140099613
cmp rax, r9
jge 0x140099613
mov r9, qword [rsp + 0x78]
mov r9, qword [r9 + rax*8]
lea r8, [0x1402fbad0]
mov edx, 7
lea rcx, [rsp + 0x38]
call fcn.140007780
xor r11d, r11d
mov r12d, r11d
mov esi, r11d
mov r8, qword [rbp - 0x58]
test r8, r8
jle 0x1400995cd
mov eax, r11d
mov r10, qword [rbp - 0x60]
nop
test rax, rax
js 0x14009960d
cmp rax, r8
jge 0x14009960d
mov r9, qword [r10 + rax*8]
lea r8, str.______tCBaseFuncSub::FS_MoveInfFileFromInfToTemp_OtherPDL___Ini_Drv_name___s.
mov edx, 7
lea rcx, [rsp + 0x38]
call fcn.140007780
test rsi, rsi
js 0x140099607
mov r8, qword [rbp - 0x58]
cmp rsi, r8
jge 0x140099607
mov r10, qword [rbp - 0x60]
test rbx, rbx
js 0x140099601
mov r9, qword [rbp - 0x80]
cmp rbx, r9
jge 0x140099601
mov rcx, qword [rsp + 0x78]
mov rdx, qword [r10 + rsi*8]
xor r11d, r11d
mov eax, r11d
test rdx, rdx
setne al
test eax, eax
je 0x1400995f6
mov rax, qword [rcx + rbx*8]
sub rdx, rax
movzx ecx, word [rax]
cmp cx, word [rax + rdx]
jne 0x140099557
add rax, 2
test cx, cx
jne 0x140099540
mov eax, r11d
jmp 0x14009955c
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
sete al
test al, al
jne 0x140099579
inc r12d
inc rsi
movsxd rax, r12d
cmp rax, r8
jl 0x1400994c0
jmp 0x1400995d1
mov rax, qword [r15]
lea r8, [rbp + 0x1f0]
mov edx, r14d
mov rcx, r15
call qword [rax + 0x38]
lea r9, [rbp + 0x1f0]
lea r8, str.______tCBaseFuncSub::FS_MoveInfFileFromInfToTemp_OtherPDL___Inf_name___s.
mov edx, 7
lea rcx, [rsp + 0x38]
call fcn.140007780
mov rcx, qword [0x1403b9768]
mov rax, qword [rcx]
lea r9, [rbp + 0x1f0]
mov r8, qword [rbp - 0x40]
mov rdx, qword [rsp + 0x68]
call qword [rax + 0xd8]
mov dword [rsp + 0x50], eax
mov r9, qword [rbp - 0x80]
inc r13d
inc rbx
movsxd rax, r13d
cmp rax, r9
jl 0x140099470
inc r14d
cmp r14d, dword [rsp + 0x60]
jge 0x140099619
or rbx, 0xffffffffffffffff
jmp 0x140099430
mov ecx, 0x80004005
call fcn.140005210
int3
call fcn.140102ffc
int3
call fcn.140102ffc
int3
call fcn.140102ffc
int3
call fcn.140102ffc
int3
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
mov edx, 5
call qword [rax + 0x30]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
mov edx, 4
call qword [rax + 0x30]
mov esi, dword [rsp + 0x50]
mov r9d, esi
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0x38]
call fcn.140007780
nop
lea rdx, [rdi - 0x18]
or rdi, 0xffffffffffffffff
mov eax, edi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14009967a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], edi
dec edi
test edi, edi
jg 0x140099698
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp - 0x68]
call fcn.140105ce4
nop
lea rcx, [rsp + 0x70]
call fcn.140105ce4
nop
lea rcx, [rsp + 0x38]
call fcn.140007730
mov eax, esi
jmp 0x140099815
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
mov edx, 5
call qword [rax + 0x30]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
mov edx, 4
call qword [rax + 0x30]
xor r9d, r9d
lea r8, str.return___08x
lea edx, [r9 + 2]
lea rcx, [rsp + 0x38]
call fcn.140007780
nop
lea rdx, [rdi - 0x18]
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140099716
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x140099734
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp - 0x68]
call fcn.140105ce4
nop
lea rcx, [rsp + 0x70]
call fcn.140105ce4
nop
jmp 0x140099809
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
mov edx, 5
call qword [rax + 0x30]
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
mov edx, 4
call qword [rax + 0x30]
xor r9d, r9d
lea r8, str.return___08x
lea edx, [r9 + 2]
lea rcx, [rsp + 0x38]
call fcn.140007780
nop
lea rdx, [rdi - 0x18]
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1400997a6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x1400997c4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rbp - 0x68]
call fcn.140105ce4
nop
lea rcx, [rsp + 0x70]
call fcn.140105ce4
nop
jmp 0x140099809
xor r9d, r9d
lea r8, str.return___08x
lea edx, [r9 + 2]
lea rcx, [rsp + 0x38]
call fcn.140007780
nop
lea rcx, [rbp - 0x68]
call fcn.140105ce4
nop
lea rcx, [rsp + 0x70]
call fcn.140105ce4
nop
lea rcx, [rsp + 0x38]
call fcn.140007730
xor eax, eax
mov rcx, qword [rbp + 0x2610]
xor rcx, rsp
call fcn.140245660
mov rbx, qword [rsp + 0x2760]
add rsp, 0x2720
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret