Function at 0x14001c1d0
Capabilities:
Read .ini file

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0xc0
mov qword [rsp + 0xb0], 0xfffffffffffffffe
mov r13, rcx
mov dword [rsp + 0x110], 0
call fcn.1400280cc
mov rcx, rax
xor edx, edx
test rax, rax
setne dl
test edx, edx
jne 0x14001c21b
mov ecx, 0x80004005
call fcn.140003280
int3
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x118], rbx
lea r14, [0x14007e0d8]
mov r12, r14
or rsi, 0xffffffffffffffff
shr r12, 0x10
jne 0x14001c26e
movzx edi, r14w
mov ecx, edi
call fcn.1400280b8
test rax, rax
je 0x14001c298
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x118]
call fcn.140003060
mov rbx, qword [rsp + 0x118]
jmp 0x14001c298
xor eax, eax
mov rcx, rsi
mov rdi, r14
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, r14
lea rcx, [rsp + 0x118]
call fcn.1400036f0
mov rbx, qword [rsp + 0x118]
mov rdi, qword [r13 + 0x250]
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x1000
or ecx, eax
jge 0x14001c2cd
mov edx, 0x1000
lea rcx, [rsp + 0x118]
call fcn.140003380
mov rbx, qword [rsp + 0x118]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x1000
mov r9, rbx
mov r8, r14
lea rdx, str.ExpandFolder
lea rcx, str.DownDLLLog
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test rbx, rbx
jne 0x14001c2fd
xor ecx, ecx
jmp 0x14001c317
xor eax, eax
mov rcx, rsi
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
test ecx, ecx
js 0x14001c970
cmp ecx, dword [rbx - 0xc]
jg 0x14001c970
mov dword [rbx - 0x10], ecx
movsxd rax, ecx
mov word [rbx + rax*2], 0
cmp dword [rbx - 0x10], 0
jne 0x14001c354
lea rdx, [rbx - 0x18]
mov ecx, esi
lock xadd dword [rdx + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x14001c34d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, esi
jmp 0x14001c97b
lea rcx, [rsp + 0x50]
call fcn.1400292ac
nop
mov r8, rsi
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.1400293c0
mov dword [rsp + 0x108], 0
lea rax, [rsp + 0x40]
mov qword [rsp + 0x48], rax
call fcn.1400280cc
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x14001c3a2
mov ecx, 0x80004005
call fcn.140003280
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
lea rdx, str.VERINFO.ESI
test rdx, 0xffffffffffff0000
jne 0x14001c3e5
movzx edi, dx
mov ecx, edi
call fcn.1400280b8
test rax, rax
je 0x14001c402
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.140003060
jmp 0x14001c402
xor eax, eax
mov rcx, rsi
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x40]
call fcn.1400036f0
nop
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x108]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x118]
mov rcx, r13
call fcn.14001cad0
cmp qword [rsp + 0x60], 0
jne 0x14001c45e
lea rcx, [rsp + 0x50]
call fcn.140029574
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001c457
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, esi
jmp 0x14001c97b
call fcn.1400280cc
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x14001c47d
mov ecx, 0x80004005
call fcn.140003280
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
test r12, r12
jne 0x14001c4b6
movzx edi, r14w
mov ecx, edi
call fcn.1400280b8
test rax, rax
je 0x14001c4d6
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140003060
jmp 0x14001c4d6
xor eax, eax
mov rcx, rsi
mov rdi, r14
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, r14
lea rcx, [rsp + 0x30]
call fcn.1400036f0
nop
cmp qword [rsp + 0x60], 0
jg 0x14001c4e4
call fcn.140027e38
int3
mov rax, qword [rsp + 0x58]
mov rdx, qword [rax]
lea rdi, [rdx - 0x18]
mov rbx, qword [rsp + 0x30]
add rbx, 0xffffffffffffffe8
cmp rdi, rbx
je 0x14001c5a8
cmp dword [rbx + 0x10], 0
jl 0x14001c59a
mov rcx, qword [rdi]
cmp rcx, qword [rbx]
jne 0x14001c59a
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi + 0x10], 0
jl 0x14001c536
cmp rax, qword [rdi]
jne 0x14001c536
mov rbp, rdi
lock add dword [rdi + 0x10], 1
jmp 0x14001c575
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi + 8]
call qword [rax]
mov rbp, rax
test rax, rax
jne 0x14001c552
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 0x14001c58f
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 0x14001c5a8
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.1400036f0
call fcn.1400280cc
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x14001c5c7
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 + 0x38], rbx
test r12, r12
jne 0x14001c605
movzx edi, r14w
mov ecx, edi
call fcn.1400280b8
test rax, rax
je 0x14001c629
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140003060
mov rbx, qword [rsp + 0x38]
jmp 0x14001c629
xor eax, eax
mov rcx, rsi
mov rdi, r14
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, r14
lea rcx, [rsp + 0x38]
call fcn.1400036f0
mov rbx, qword [rsp + 0x38]
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or ecx, eax
jge 0x14001c651
mov edx, 0x104
lea rcx, [rsp + 0x38]
call fcn.140003380
mov rbx, qword [rsp + 0x38]
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x104
mov r9, rbx
mov r8, r14
lea rdx, str.ExecuteName
lea rcx, str.Version
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test rbx, rbx
jne 0x14001c686
xor ecx, ecx
jmp 0x14001c6a0
xor eax, eax
mov rcx, rsi
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
test ecx, ecx
js 0x14001c965
cmp ecx, dword [rbx - 0xc]
jg 0x14001c965
mov dword [rbx - 0x10], ecx
movsxd rax, ecx
mov word [rbx + rax*2], 0
cmp dword [rbx - 0x10], 0
jne 0x14001c72d
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001c6d7
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 0x14001c6f8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x50]
call fcn.140029574
nop
mov rdx, qword [rsp + 0x118]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001c726
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, esi
jmp 0x14001c97b
lea rcx, [rsp + 0x80]
call fcn.1400292ac
nop
mov r8, rsi
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.1400293c0
mov dword [rsp + 0x108], 0
add rbx, 0xffffffffffffffe8
mov rcx, qword [rbx]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rbx + 0x10], 0
jl 0x14001c77a
cmp rax, qword [rbx]
jne 0x14001c77a
mov rdi, rbx
lock add dword [rbx + 0x10], 1
jmp 0x14001c7b9
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rbx + 8]
call qword [rax]
mov rdi, rax
test rax, rax
jne 0x14001c796
call fcn.140003050
int3
mov eax, dword [rbx + 8]
mov dword [rdi + 8], eax
mov eax, dword [rbx + 8]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
lea r8, [rbx + 0x18]
add rdx, rdx
lea rcx, [rdi + 0x18]
call fcn.1400525a0
lea rax, [rdi + 0x18]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x108]
lea r8, [rsp + 0x80]
lea rdx, [rsp + 0x118]
mov rcx, r13
call fcn.14001cad0
cmp qword [rsp + 0x90], 0
jne 0x14001c876
lea rcx, [rsp + 0x80]
call fcn.140029574
nop
mov eax, esi
lock xadd dword [rbx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001c820
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
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 0x14001c841
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x50]
call fcn.140029574
nop
mov rdx, qword [rsp + 0x118]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001c86f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, esi
jmp 0x14001c97b
lea rax, [rsp + 0x48]
mov qword [rsp + 0xa8], rax
lea rdx, str._AWU__SHLA
lea rcx, [rsp + 0x48]
call fcn.1400032a0
mov rdi, rax
cmp qword [rsp + 0x90], 0
jg 0x14001c8a8
call fcn.140027e38
int3
mov rdx, qword [rsp + 0x88]
lea rcx, [rsp + 0xb8]
call fcn.1400034e0
nop
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 1
lea r9, [rsp + 0x110]
mov r8, rdi
mov rdx, rax
mov rcx, r13
call fcn.140014bf0
nop
lea rcx, [rsp + 0x80]
call fcn.140029574
nop
mov eax, esi
lock xadd dword [rbx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001c90e
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
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 0x14001c92f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lea rcx, [rsp + 0x50]
call fcn.140029574
mov edi, dword [rsp + 0x110]
mov rdx, qword [rsp + 0x118]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x14001c961
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, edi
jmp 0x14001c97b
mov ecx, 0x80070057
call fcn.140003280
nop
mov ecx, 0x80070057
call fcn.140003280
nop
add rsp, 0xc0
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret