Function at 0x14001c360
Capabilities:
Delete registry value
Query or enumerate registry value
Set registry value

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x140
mov qword [rsp + 0x130], 0xfffffffffffffffe
mov qword [rsp + 0x180], rbx
mov r15d, edx
mov r14, rcx
call fcn.140025894
mov rcx, rax
xor r12d, r12d
mov eax, r12d
test rcx, rcx
setne al
test eax, eax
jne 0x14001c3b0
mov ecx, 0x80004005
call fcn.140007cd0
int3
mov rax, qword [rcx]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x80], rax
mov rcx, r14
call fcn.140011220
cmp byte [r14 + 0x1d8], 0
je 0x14001d601
mov rcx, r14
call fcn.14001c180
test r15d, r15d
je 0x14001cc15
call fcn.140025894
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001c409
mov ecx, 0x80004005
call fcn.140007cd0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x60], rax
lea rcx, str.msi.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov r13, rax
or rbp, 0xffffffffffffffff
test rax, rax
je 0x14001c5cb
xor eax, eax
mov rcx, rbp
lea rdi, str.Comp_Inst_
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str.Comp_Inst_
lea rcx, [rsp + 0x60]
call fcn.140009100
mov r12, qword [r14 + 0xa0]
mov edx, dword [r12 - 0x10]
mov dword [rsp + 0x198], edx
mov rbx, r12
mov rdi, qword [rsp + 0x60]
sub rbx, rdi
sar rbx, 1
mov eax, dword [rdi - 0x10]
mov dword [rsp + 0x78], eax
lea esi, [rax + rdx]
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, esi
or eax, ecx
jge 0x14001c4b3
mov edx, esi
lea rcx, [rsp + 0x60]
call fcn.140009290
mov rdi, qword [rsp + 0x60]
mov edx, dword [rsp + 0x198]
mov eax, dword [rsp + 0x78]
cmp rbx, rax
ja 0x14001c4c0
lea r12, [rdi + rbx*2]
movsxd rdx, edx
add rdx, rdx
lea rcx, [rdi + rax*2]
mov r9, rdx
mov r8, r12
call fcn.14003b8f0
test esi, esi
js 0x14001c5c0
cmp esi, dword [rdi - 0xc]
jg 0x14001c5c0
mov dword [rdi - 0x10], esi
movsxd rax, esi
mov word [rdi + rax*2], 0
mov eax, 1
sub eax, dword [rdi - 8]
or eax, dword [rdi - 0xc]
jge 0x14001c510
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.140009290
mov rdi, qword [rsp + 0x60]
mov rax, qword [r14 + 0x38]
mov r9, rdi
lea r8, str.___Will_start_Custom_Action__s_...
mov edx, 0xa
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
lea rdx, str.MsiDoActionW
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
mov edx, 1
sub edx, dword [rdi - 8]
mov ecx, dword [rdi - 0xc]
or ecx, edx
jge 0x14001c560
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.140009290
mov rdi, qword [rsp + 0x60]
mov rdx, rdi
mov ecx, r15d
call rbx
mov ebx, eax
mov dword [rsp + 0x198], eax
mov edx, 1
sub edx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
or eax, edx
jge 0x14001c591
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.140009290
mov rdi, qword [rsp + 0x60]
mov rax, qword [r14 + 0x38]
mov dword [rsp + 0x20], ebx
mov r9, rdi
lea r8, str.Custom_Action__s_return__d
mov edx, 0xa
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
xor r12d, r12d
jmp 0x14001c5d8
mov ecx, 0x80070057
call fcn.140007cd0
int3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x198], eax
call fcn.140025894
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001c5f8
mov ecx, 0x80004005
call fcn.140007cd0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x48], rdi
call fcn.140025894
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001c62a
mov ecx, 0x80004005
call fcn.140007cd0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x68], rax
mov rdx, qword [r14 + 0x250]
lea rcx, [rdx - 0x18]
lea rsi, [rdi - 0x18]
cmp rcx, rsi
je 0x14001c69e
cmp dword [rsi + 0x10], 0
jl 0x14001c68b
mov rax, qword [rsi]
cmp qword [rcx], rax
jne 0x14001c68b
call fcn.140009350
mov rdi, rax
mov ecx, ebp
lock xadd dword [rsi + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x14001c680
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add rdi, 0x18
mov qword [rsp + 0x48], rdi
jmp 0x14001c69e
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x48]
call fcn.140009100
mov rdi, qword [rsp + 0x48]
mov rdx, qword [r14 + 0xb8]
lea rcx, [rsp + 0xc8]
call fcn.140005d30
nop
mov r8, rax
lea rdx, [0x14005cc80]
lea rcx, [rsp + 0xf8]
call fcn.140007ae0
nop
mov r12, qword [rax]
movsxd r15, dword [r12 - 0x10]
mov rbx, r12
sub rbx, rdi
sar rbx, 1
mov r13d, dword [rdi - 0x10]
lea esi, [r13 + r15]
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, esi
or eax, ecx
jge 0x14001c707
mov edx, esi
lea rcx, [rsp + 0x48]
call fcn.140009290
mov rdi, qword [rsp + 0x48]
cmp rbx, r13
ja 0x14001c710
lea r12, [rdi + rbx*2]
mov rdx, r15
add rdx, rdx
lea rcx, [rdi + r13*2]
mov r9, rdx
mov r8, r12
call fcn.14003b8f0
test esi, esi
js 0x14001cc0a
cmp esi, dword [rdi - 0xc]
jg 0x14001cc0a
mov dword [rdi - 0x10], esi
movsxd rax, esi
mov word [rdi + rax*2], 0
mov rdx, qword [rsp + 0xf8]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001c766
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, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001c789
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r9, [rsp + 0x68]
lea r8, str.Transforms
mov rdi, qword [rsp + 0x48]
mov rdx, rdi
mov rcx, qword [r14 + 0x248]
call fcn.1400055b0
mov rdx, qword [rsp + 0x68]
cmp dword [rdx - 0x10], 0
jle 0x14001cb92
mov ecx, 1
sub ecx, dword [rdx - 8]
mov eax, dword [rdx - 0xc]
or eax, ecx
jge 0x14001c7d8
xor edx, edx
lea rcx, [rsp + 0x68]
call fcn.140009290
mov rdx, qword [rsp + 0x68]
mov rax, qword [r14 + 0x38]
mov r9, rdx
lea r8, str.Transformfile_read_from_registry:__s
mov edx, 0xa
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
or eax, ecx
jge 0x14001c815
xor edx, edx
lea rcx, [rsp + 0x48]
call fcn.140009290
mov rdi, qword [rsp + 0x48]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov r9d, 0x30007
xor r8d, r8d
mov rdx, rdi
mov rcx, qword [r14 + 0x248]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14001c8d8
lea rdx, str.Transforms
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov dword [rsp + 0x198], eax
test eax, eax
je 0x14001c899
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
or eax, ecx
jge 0x14001c87d
xor edx, edx
lea rcx, [rsp + 0x48]
call fcn.140009290
mov rdi, qword [rsp + 0x48]
mov rax, qword [r14 + 0x38]
mov r9, rdi
lea r8, str.Couldn
xor edx, edx
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
jmp 0x14001c912
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
or eax, ecx
jge 0x14001c8b9
xor edx, edx
lea rcx, [rsp + 0x48]
call fcn.140009290
mov rdi, qword [rsp + 0x48]
mov rax, qword [r14 + 0x38]
mov r9, rdi
lea r8, str._Transform_deleted_successfully__in:__s_
mov edx, 0xa
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
jmp 0x14001c912
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
or eax, ecx
jge 0x14001c8f8
xor edx, edx
lea rcx, [rsp + 0x48]
call fcn.140009290
mov rdi, qword [rsp + 0x48]
mov rax, qword [r14 + 0x38]
mov r9, rdi
lea r8, [0x140065180]
xor edx, edx
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
call fcn.140025894
mov rdx, rax
xor r12d, r12d
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001c940
mov ecx, 0x80004005
call fcn.140007cd0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x68]
xor ecx, ecx
call fcn.140001bd0
cmp eax, 1
jne 0x14001ca27
lea r8d, [rax + 5]
mov rdx, qword [rsp + 0x68]
lea rcx, [rsp + 0x30]
call section..text
lea rdx, [0x14005cc80]
lea rcx, [rsp + 0x30]
call fcn.1400076c0
mov r9, qword [rsp + 0x30]
mov ecx, 1
sub ecx, dword [r9 - 8]
mov eax, dword [r9 - 0xc]
or eax, ecx
jge 0x14001c9b2
xor edx, edx
lea rcx, [rsp + 0x30]
call fcn.140009290
mov r9, qword [rsp + 0x30]
mov rax, qword [r14 + 0x38]
lea r8, str._Path_to_delete:__s
mov edx, 0xa
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
mov rcx, qword [rsp + 0x30]
call fcn.1400061e0
mov rdx, qword [rsp + 0x68]
xor ecx, ecx
call fcn.140001bd0
test eax, eax
je 0x14001ca27
mov r9, qword [rsp + 0x30]
mov ecx, 1
sub ecx, dword [r9 - 8]
mov eax, dword [r9 - 0xc]
or eax, ecx
jge 0x14001ca0d
xor edx, edx
lea rcx, [rsp + 0x30]
call fcn.140009290
mov r9, qword [rsp + 0x30]
mov rax, qword [r14 + 0x38]
lea r8, str._Path_could_not_be_deleted:__s
mov edx, 2
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
lea rdx, [r14 + 0x1e8]
lea r8, str.Installer
lea rcx, [rsp + 0xd8]
call fcn.140007a00
nop
lea r8, [r14 + 0xb8]
mov rdx, rax
lea rcx, [rsp + 0x118]
call fcn.140007910
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x30]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001caba
cmp dword [rdi + 0x10], 0
jl 0x14001caab
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001caab
call fcn.140009350
mov rbx, rax
mov ecx, ebp
lock xadd dword [rdi + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x14001caa0
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x14001caba
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140009100
nop
mov rdx, qword [rsp + 0x118]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001cade
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xd8]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001cb01
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x30]
call fcn.1400061e0
mov rdx, qword [rsp + 0x30]
mov ecx, 3
call fcn.140001bd0
test eax, eax
je 0x14001cb5f
mov r9, qword [rsp + 0x30]
mov edx, 1
sub edx, dword [r9 - 8]
mov eax, dword [r9 - 0xc]
or eax, edx
jge 0x14001cb45
xor edx, edx
lea rcx, [rsp + 0x30]
call fcn.140009290
mov r9, qword [rsp + 0x30]
mov rax, qword [r14 + 0x38]
lea r8, str._Path_could_not_be_deleted:__s
mov edx, 2
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
mov qword [rsp + 0x40], r12
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001cb8b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rsp + 0x68]
jmp 0x14001cb95
mov rdx, qword [rsp + 0x68]
jmp 0x14001cb95
xor r12d, r12d
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001cbb1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001cbd2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
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 0x14001d8e4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r13d, dword [rsp + 0x198]
lea r15, [0x140061334]
jmp 0x14001d8fc
mov ecx, 0x80070057
call fcn.140007cd0
nop
call fcn.140025894
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001cc35
mov ecx, 0x80004005
call fcn.140007cd0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x38], rsi
mov rdx, qword [r14 + 0x1a0]
or rbp, 0xffffffffffffffff
test rdx, rdx
jne 0x14001cc5c
mov ecx, r12d
jmp 0x14001cc76
xor eax, eax
mov rcx, rbp
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
test ecx, ecx
js 0x14001d5f6
cmp ecx, dword [rdx - 0xc]
jg 0x14001d5f6
mov dword [rdx - 0x10], ecx
movsxd rcx, ecx
mov rax, qword [r14 + 0x1a0]
mov word [rax + rcx*2], 0
mov rax, qword [r14 + 0x1a0]
movsxd rdi, dword [rax - 0x10]
mov ecx, 1
sub ecx, dword [rax - 8]
mov eax, dword [rax - 0xc]
sub eax, edi
or eax, ecx
jge 0x14001ccbc
mov edx, edi
lea rcx, [r14 + 0x1a0]
call fcn.140009290
lea eax, [rdi + 1]
movsxd rdx, eax
mov rcx, qword [r14 + 0x1a0]
call fcn.14003b090
test edi, edi
js 0x14001d5eb
mov rax, qword [r14 + 0x1a0]
cmp edi, dword [rax - 0xc]
jg 0x14001d5eb
mov dword [rax - 0x10], edi
mov rax, qword [r14 + 0x1a0]
mov word [rax + rdi*2], 0
mov rcx, qword [r14 + 0x1a0]
cmp dword [rcx - 0x10], 0
jl 0x14001cd3e
lea rdx, str.REINSTALLALL
call fcn.14003ade0
test rax, rax
je 0x14001cd3e
sub rax, qword [r14 + 0x1a0]
sar rax, 1
cmp eax, 0xffffffff
jle 0x14001cd3e
lea rcx, [r14 + 0x38]
mov rax, qword [rcx]
lea r8, str._Component_will_be_installed_using_REINSTALL_mode.
mov edx, 8
call qword [rax + 0xd0]
jmp 0x14001cd51
lea rdx, str._ALLUSERS1
lea rcx, [r14 + 0x1a0]
call fcn.140007280
lea r8, [r14 + 0x198]
lea rdx, str.msiexec.exe__i__
lea rcx, [rsp + 0xd0]
call fcn.140007ae0
nop
lea r8, [r14 + 0x90]
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.140007910
nop
lea r8, [0x140063bbc]
mov rdx, rax
lea rcx, [rsp + 0xb8]
call fcn.140007a00
nop
lea r8, [r14 + 0x80]
mov rdx, rax
lea rcx, [rsp + 0xb0]
call fcn.140007910
nop
lea r8, [0x14005f874]
mov rdx, rax
lea rcx, [rsp + 0xe8]
call fcn.140007a00
nop
lea r8, [r14 + 0x1a0]
mov rdx, rax
lea rcx, [rsp + 0x108]
call fcn.140007910
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rsi, 0xffffffffffffffe8
cmp rcx, rsi
je 0x14001ce3f
cmp dword [rsi + 0x10], 0
jl 0x14001ce30
mov rax, qword [rsi]
cmp qword [rcx], rax
jne 0x14001ce30
call fcn.140009350
mov rdi, rax
mov ecx, ebp
lock xadd dword [rsi + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x14001ce25
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x38], rax
jmp 0x14001ce3f
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x38]
call fcn.140009100
nop
mov rdx, qword [rsp + 0x108]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001ce63
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xe8]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001ce87
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb0]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001ceab
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001cecf
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, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001cef3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xd0]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001cf16
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r14 + 0x1f8]
cmp dword [rax - 0x10], 0
je 0x14001cfff
lea r8, str._TIMEOUT
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0xf0]
call fcn.140007a00
nop
lea r8, [r14 + 0x1f8]
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.140007910
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
mov rdi, qword [rsp + 0x38]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001cfb8
cmp dword [rdi + 0x10], 0
jl 0x14001cfa9
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001cfa9
call fcn.140009350
mov rsi, rax
mov ecx, ebp
lock xadd dword [rdi + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x14001cf9e
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x38], rax
jmp 0x14001cfb8
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x38]
call fcn.140009100
nop
mov rdx, qword [rsp + 0xe0]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001cfdc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xf0]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001cfff
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rsi, qword [rsp + 0x38]
test rsi, rsi
jne 0x14001d00e
mov ecx, r12d
jmp 0x14001d028
xor eax, eax
mov rcx, rbp
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
test ecx, ecx
js 0x14001d5e0
cmp ecx, dword [rsi - 0xc]
jg 0x14001d5e0
mov dword [rsi - 0x10], ecx
movsxd rax, ecx
mov word [rsi + rax*2], 0
xor eax, eax
mov rcx, rbp
lea r12, str._ADS_CALLED_EXTERNAL1
mov rdi, r12
repne scasw ax, word [rdi]
not rcx
lea r15, [rcx - 1]
mov rbx, r12
sub rbx, rsi
sar rbx, 1
mov r13d, dword [rsi - 0x10]
lea edi, [r13 + rcx - 1]
mov edx, 1
sub edx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
sub eax, edi
or eax, edx
jge 0x14001d08a
mov edx, edi
lea rcx, [rsp + 0x38]
call fcn.140009290
mov rsi, qword [rsp + 0x38]
cmp rbx, r13
ja 0x14001d093
lea r12, [rsi + rbx*2]
movsxd rdx, r15d
add rdx, rdx
lea rcx, [rsi + r13*2]
mov r9, rdx
mov r8, r12
call fcn.14003b8f0
test edi, edi
js 0x14001d5d5
cmp edi, dword [rsi - 0xc]
jg 0x14001d5d5
mov dword [rsi - 0x10], edi
movsxd rax, edi
mov word [rsi + rax*2], 0
cmp dword [r14 + 0x74], 1
jne 0x14001d1f0
xor eax, eax
mov rcx, rbp
lea r12, str._OVERINSTALLYES
mov rdi, r12
repne scasw ax, word [rdi]
not rcx
lea r15, [rcx - 1]
mov rbx, r12
sub rbx, rsi
sar rbx, 1
mov r13d, dword [rsi - 0x10]
lea edi, [r13 + rcx - 1]
mov edx, 1
sub edx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
sub eax, edi
or eax, edx
jge 0x14001d11d
mov edx, edi
lea rcx, [rsp + 0x38]
call fcn.140009290
mov rsi, qword [rsp + 0x38]
cmp rbx, r13
ja 0x14001d126
lea r12, [rsi + rbx*2]
movsxd rdx, r15d
add rdx, rdx
lea rcx, [rsi + r13*2]
mov r9, rdx
mov r8, r12
call fcn.14003b8f0
test edi, edi
js 0x14001d1e5
cmp edi, dword [rsi - 0xc]
jg 0x14001d1e5
mov dword [rsi - 0x10], edi
movsxd rax, edi
mov word [rsi + rax*2], 0
xor eax, eax
mov rcx, rbp
lea r12, str._UPDATEMODE1
mov rdi, r12
repne scasw ax, word [rdi]
not rcx
lea r15, [rcx - 1]
mov rbx, r12
sub rbx, rsi
sar rbx, 1
mov r13d, dword [rsi - 0x10]
lea edi, [r13 + rcx - 1]
mov edx, 1
sub edx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
sub eax, edi
or eax, edx
jge 0x14001d1a5
mov edx, edi
lea rcx, [rsp + 0x38]
call fcn.140009290
mov rsi, qword [rsp + 0x38]
cmp rbx, r13
ja 0x14001d1ae
lea r12, [rsi + rbx*2]
movsxd rdx, r15d
add rdx, rdx
lea rcx, [rsi + r13*2]
mov r9, rdx
mov r8, r12
call fcn.14003b8f0
test edi, edi
js 0x14001d1da
cmp edi, dword [rsi - 0xc]
jg 0x14001d1da
mov dword [rsi - 0x10], edi
movsxd rax, edi
mov word [rsi + rax*2], 0
jmp 0x14001d1f0
mov ecx, 0x80070057
call fcn.140007cd0
int3
mov ecx, 0x80070057
call fcn.140007cd0
int3
cmp byte [r14 + 0x1c8], 0
je 0x14001d28b
xor eax, eax
mov rcx, rbp
lea r12, str._LOGGINGMAX1
mov rdi, r12
repne scasw ax, word [rdi]
not rcx
lea r15, [rcx - 1]
mov rbx, r12
sub rbx, rsi
sar rbx, 1
mov r13d, dword [rsi - 0x10]
lea edi, [r13 + rcx - 1]
mov edx, 1
sub edx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
sub eax, edi
or eax, edx
jge 0x14001d24b
mov edx, edi
lea rcx, [rsp + 0x38]
call fcn.140009290
mov rsi, qword [rsp + 0x38]
cmp rbx, r13
ja 0x14001d254
lea r12, [rsi + rbx*2]
movsxd rdx, r15d
add rdx, rdx
lea rcx, [rsi + r13*2]
mov r9, rdx
mov r8, r12
call fcn.14003b8f0
test edi, edi
js 0x14001d280
cmp edi, dword [rsi - 0xc]
jg 0x14001d280
mov dword [rsi - 0x10], edi
movsxd rax, edi
mov word [rsi + rax*2], 0
jmp 0x14001d28b
mov ecx, 0x80070057
call fcn.140007cd0
int3
xor r12d, r12d
mov qword [rsp + 0xa8], r12
call fcn.140025894
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001d2b6
mov ecx, 0x80004005
call fcn.140007cd0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x90], rdi
xor ecx, ecx
call fcn.14003b170
mov qword [rsp + 0xa8], rax
lea r8, str._H:_M:_S
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0xa8]
call fcn.1400083b0
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001d357
cmp dword [rdi + 0x10], 0
jl 0x14001d345
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001d345
call fcn.140009350
mov rsi, rax
mov ecx, ebp
lock xadd dword [rdi + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x14001d337
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x90], rax
jmp 0x14001d357
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x90]
call fcn.140009100
nop
mov rdx, qword [rsp + 0x100]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001d37a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r14 + 0x38]
mov r9, qword [rsp + 0x90]
lea r8, str._Launch_installation:____s_
mov edx, 8
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
mov rdx, qword [r14 + 0x88]
mov rcx, qword [rsp + 0x38]
call fcn.1400023a0
mov r13d, eax
mov rax, qword [r14 + 0x38]
lea r8, [0x140060b20]
mov edx, 9
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
call fcn.140025894
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001d3ea
mov ecx, 0x80004005
call fcn.140007cd0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x88], rsi
mov ecx, 1
sub ecx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
sub eax, 0x40
or eax, ecx
jge 0x14001d42b
mov edx, 0x40
lea rcx, [rsp + 0x88]
call fcn.140009290
mov rsi, qword [rsp + 0x88]
cmp dword [rsi - 0xc], 0x40
jge 0x14001d43c
mov ecx, 0x80070057
call fcn.140007cd0
int3
mov dword [rsi - 0x10], 0x40
mov word [rsi + 0x80], 0
mov r8d, r13d
lea rdx, [0x14005f388]
mov rcx, rsi
call fcn.14003c9b0
xor eax, eax
mov rcx, rbp
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
test ecx, ecx
js 0x14001d5ca
cmp ecx, dword [rsi - 0xc]
jg 0x14001d5ca
mov dword [rsi - 0x10], ecx
movsxd rax, ecx
mov word [rsi + rax*2], 0
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov r9d, 0x2001f
xor r8d, r8d
lea rdx, str.SOFTWARESiemensShared_ToolsCompSetup
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x14001d531
mov edi, dword [rsi - 0x10]
mov ecx, 1
sub ecx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
or eax, ecx
jge 0x14001d4e1
xor edx, edx
lea rcx, [rsp + 0x88]
call fcn.140009290
mov rsi, qword [rsp + 0x88]
lea eax, [rdi + rdi + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
mov r9d, 1
xor r8d, r8d
lea rdx, str.MsiReturn
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rax, qword [r14 + 0x38]
mov r9, rsi
lea r8, str._MSI_returncode___s____0__OK_
mov edx, 8
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [rsp + 0x28], 4
lea r15, [0x140061334]
mov qword [rsp + 0x20], r15
mov r9d, 1
xor r8d, r8d
lea rdx, str.Restart
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
nop
lea rdx, [rsi - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001d57d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001d5a1
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 0x14001d8fc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14001d8fc
mov ecx, 0x80070057
call fcn.140007cd0
nop
mov ecx, 0x80070057
call fcn.140007cd0
int3
mov ecx, 0x80070057
call fcn.140007cd0
int3
mov ecx, 0x80070057
call fcn.140007cd0
int3
mov ecx, 0x80070057
call fcn.140007cd0
nop
mov ecx, 0xbb8
call qword [sym.imp.KERNEL32.dll_Sleep]
call fcn.140025894
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001d62c
mov ecx, 0x80004005
call fcn.140007cd0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x98], rdi
lea r8, [r14 + 0x90]
lea rdx, [r14 + 0x198]
lea rcx, [rsp + 0x110]
call fcn.140007910
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
or rbp, 0xffffffffffffffff
cmp rcx, rdi
je 0x14001d6c0
cmp dword [rdi + 0x10], 0
jl 0x14001d6ae
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001d6ae
call fcn.140009350
mov rsi, rax
mov ecx, ebp
lock xadd dword [rdi + 0x10], ecx
add ecx, ebp
test ecx, ecx
jg 0x14001d6a0
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x98], rax
jmp 0x14001d6c0
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x98]
call fcn.140009100
nop
mov rdx, qword [rsp + 0x110]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001d6e3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rsi, qword [rsp + 0x98]
test rsi, rsi
jne 0x14001d6f5
mov ecx, r12d
jmp 0x14001d70f
xor eax, eax
mov rcx, rbp
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
test ecx, ecx
js 0x14001dfc7
cmp ecx, dword [rsi - 0xc]
jg 0x14001dfc7
mov dword [rsi - 0x10], ecx
movsxd rax, ecx
mov word [rsi + rax*2], 0
mov rax, qword [r14 + 0x38]
mov r9, rsi
lea r8, str._Launch_Exe:__s
mov edx, 8
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
mov rdx, qword [r14 + 0x88]
mov rcx, rsi
call fcn.140002780
mov rdi, qword [r14 + 0x38]
mov r9d, eax
lea r8, str._Launch_returncode:__d
mov edx, 8
lea rcx, [r14 + 0x38]
call qword [rdi + 0xd0]
mov edi, r12d
mov esi, 1
mov dword [rsp + 0x190], r12d
mov r13d, r12d
test esi, esi
je 0x14001d8b8
cmp edi, 0x927c0
jb 0x14001d83a
mov edi, r12d
mov rax, qword [r14 + 0x38]
lea r8, str._Timeout_while_waiting_on_componentsetup_..._
mov edx, 2
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
lea r8, str.5018
lea rdx, [rsp + 0xa0]
mov rcx, r14
call fcn.140011430
nop
mov r9d, 0x12034
lea r8, [0x14005d200]
mov rdx, qword [rsp + 0xa0]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 7
jne 0x14001d817
mov rax, qword [r14 + 0x38]
lea r8, str.Timeout_launching_componentsetup__skip_by_User__
mov edx, 1
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
mov r13d, 0x4e85
mov esi, r12d
mov rcx, r14
call fcn.1400117d0
nop
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001d83a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov ecx, 0x1f4
call qword [sym.imp.KERNEL32.dll_Sleep]
add edi, 0x1f4
lea r8, [rsp + 0x40]
lea rdx, str.SOFTWARESiemensShared_ToolsCompSetup
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x14001d8aa
mov dword [rsp + 0x190], r12d
lea rax, [rsp + 0x190]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x128]
xor r8d, r8d
lea rdx, [0x14005f448]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [rsp + 0x190], 2
jne 0x14001d780
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001d8f5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r15, [0x140061334]
jmp 0x14001d8fc
mov r13d, dword [rsp + 0x198]
lea r15, [0x140061334]
jmp 0x14001d8fc
lea r15, [0x140061334]
call fcn.140025894
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001d91c
mov ecx, 0x80004005
call fcn.140007cd0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
call fcn.140025894
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001d94e
mov ecx, 0x80004005
call fcn.140007cd0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x50], rdi
call fcn.140025894
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14001d980
mov ecx, 0x80004005
call fcn.140007cd0
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x70], rax
lea rdx, [rsp + 0x120]
mov rcx, r14
call fcn.140010c00
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
cmp rcx, rdi
je 0x14001d9fd
cmp dword [rdi + 0x10], 0
jl 0x14001d9ee
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x14001d9ee
call fcn.140009350
mov rsi, rax
mov ecx, ebp
lock xadd dword [rdi + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x14001d9e3
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsi + 0x18]
mov qword [rsp + 0x50], rax
jmp 0x14001d9fd
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x50]
call fcn.140009100
nop
mov rdx, qword [rsp + 0x120]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001da20
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r14 + 0x38]
mov rbx, qword [rsp + 0x50]
mov r9, rbx
lea r8, str.At_first__the_SetupSucceeded_Value_is:__s
mov edx, 0xa
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
lea r9, [rsp + 0x70]
lea r8, str.AppResult
lea rdx, str.SOFTWARESiemensShared_ToolsCompSetup
mov rcx, 0xffffffff80000002
call fcn.1400055b0
xor r11d, r11d
mov rdi, r15
mov r9, qword [rsp + 0x70]
mov rsi, r9
mov ecx, 2
repe cmpsw word [rsi], word [rdi]
je 0x14001da80
sbb r11d, r11d
sbb r11d, 0xffffffff
test r11d, r11d
setne al
test al, al
je 0x14001daa6
mov rax, qword [r14 + 0x38]
lea r8, str._AppResult_value__s____1_would_be_OK_
mov edx, 8
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
jmp 0x14001dac0
mov rax, qword [r14 + 0x38]
lea r8, [0x140065958]
mov edx, 8
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
mov rdx, r15
mov rcx, rbx
call fcn.14003ad30
test eax, eax
je 0x14001db12
lea rdx, [0x140065954]
mov rcx, rbx
call fcn.14003ad30
test eax, eax
je 0x14001db12
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
or eax, ecx
jge 0x14001db02
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.140009290
mov rbx, qword [rsp + 0x50]
mov rcx, rbx
call fcn.14003a780
mov r13d, eax
jmp 0x14001dcbc
mov rcx, qword [rsp + 0x70]
cmp dword [rcx - 0x10], 0
je 0x14001db4f
mov rdx, r15
call fcn.14003ad30
test eax, eax
je 0x14001db4f
mov r13d, 0xfffffff6
mov rax, qword [r14 + 0x38]
mov r9, qword [rsp + 0x70]
lea r8, str._Setup_finished_but_a_problem_was_encountered_in_a_called_related_process._ReturnCode:__s
lea edx, [r13 + 0xb]
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
jmp 0x14001db9e
test r13d, r13d
je 0x14001dcb9
cmp r13d, 0xbc2
je 0x14001dcb9
cmp r13d, 0x669
je 0x14001dcb9
cmp r13d, 0xbc3
je 0x14001dcb9
mov r13d, 0xfffffff6
mov rax, qword [r14 + 0x38]
lea r8, str._Setup_finished_but_an_unknown_problem_was_encountered_while_waiting.
lea edx, [r13 + 0xb]
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
xor eax, eax
mov rcx, rbp
lea rdi, [0x140065808]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x140065808]
lea rcx, [rsp + 0x50]
call fcn.140009100
xor eax, eax
mov rcx, rbp
lea rdi, str.SOFTWARESiemensShared_ToolsCompSetup
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str.SOFTWARESiemensShared_ToolsCompSetup
lea rcx, [rsp + 0x58]
call fcn.140009100
mov rdx, qword [rsp + 0x58]
mov ecx, 1
sub ecx, dword [rdx - 8]
mov eax, dword [rdx - 0xc]
or eax, ecx
jge 0x14001dc11
xor edx, edx
lea rcx, [rsp + 0x58]
call fcn.140009290
mov rdx, qword [rsp + 0x58]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov r9d, 0x2001f
xor r8d, r8d
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov r9d, eax
test eax, eax
jne 0x14001dc95
mov rbx, qword [rsp + 0x50]
mov edi, dword [rbx - 0x10]
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
or eax, ecx
jge 0x14001dc60
xor edx, edx
lea rcx, [rsp + 0x50]
call fcn.140009290
mov rbx, qword [rsp + 0x50]
lea eax, [rdi + rdi + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, 1
xor r8d, r8d
lea rdx, str.SetupSucceeded
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14001dcbc
mov rax, qword [r14 + 0x38]
lea r8, str.Setup_finished_but_an_unknown_problem_encountered:__CompSetup_is_empty___Ret.code:__d_
mov edx, 1
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
mov r13d, ebp
mov rbx, qword [rsp + 0x50]
jmp 0x14001dcbc
xor r13d, r13d
mov rax, qword [r14 + 0x38]
mov r9, rbx
lea r8, str._SetupSucceeded_Value__s___1_or_2_would_be_OK_
mov edx, 8
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
cmp byte [r14 + 0x1d8], 0
je 0x14001df3e
xor eax, eax
mov rcx, rbp
lea rdi, str.SOFTWARESiemensShared_ToolsCompSetup
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str.SOFTWARESiemensShared_ToolsCompSetup
lea rcx, [rsp + 0x58]
call fcn.140009100
mov rdx, qword [rsp + 0x58]
mov ecx, 1
sub ecx, dword [rdx - 8]
mov eax, dword [rdx - 0xc]
or eax, ecx
jge 0x14001dd33
xor edx, edx
lea rcx, [rsp + 0x58]
call fcn.140009290
mov rdx, qword [rsp + 0x58]
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov r9d, 0x2001f
xor r8d, r8d
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov r9d, eax
test eax, eax
jne 0x14001df21
mov rsi, qword [rsp + 0x80]
lea rdx, [rsi - 0x18]
mov rdi, qword [rdx]
cmp dword [rdx + 8], eax
je 0x14001ddc1
cmp dword [rdx + 0x10], eax
jge 0x14001dd95
cmp dword [rsi - 0xc], eax
jge 0x14001dd87
mov ecx, 0x80070057
call fcn.140007cd0
int3
mov dword [rsi - 0x10], 0
mov word [rsi], 0
jmp 0x14001ddc1
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001ddac
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
lea rsi, [rax + 0x18]
mov qword [rsp + 0x80], rsi
mov dword [rsp + 0x190], 0x800
mov ecx, 1
sub ecx, dword [rsi - 8]
mov eax, dword [rsi - 0xc]
sub eax, 0x800
or eax, ecx
jge 0x14001ddfa
mov edx, 0x800
lea rcx, [rsp + 0x80]
call fcn.140009290
mov rsi, qword [rsp + 0x80]
cmp dword [rsi - 0xc], 0x800
jl 0x14001df16
mov dword [rsi - 0x10], 0x800
mov word [rsi + 0x1000], 0
lea rax, [rsp + 0x190]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
lea r9, [rsp + 0x78]
xor r8d, r8d
lea rdx, [0x14005f448]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov r9d, eax
xor eax, eax
mov rcx, rbp
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
test ecx, ecx
js 0x14001df0b
cmp ecx, dword [rsi - 0xc]
jg 0x14001df0b
mov dword [rsi - 0x10], ecx
movsxd rax, ecx
mov word [rsi + rax*2], 0
test r9d, r9d
jne 0x14001dee1
cmp dword [rsi - 0x10], r9d
jle 0x14001dee1
mov dword [rsp + 0x28], 2
lea rax, [0x14005cb94]
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
lea rdx, [0x14005f448]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
lea rdx, str.Client
lea rcx, [rsp + 0x58]
call fcn.140007280
mov rax, qword [r14 + 0x38]
mov r9, qword [rsp + 0x58]
lea r8, str._Delete_Client_entry_at__s____compsetup_finished.
mov edx, 8
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
jmp 0x14001defe
mov rax, qword [r14 + 0x38]
lea r8, str.Setup_finished_but_an_unknown_problem_encountered:__CompSetupClient_is_empty___Ret.code:__d_
mov edx, 1
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
mov r13d, ebp
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x14001df3e
mov ecx, 0x80070057
call fcn.140007cd0
int3
mov ecx, 0x80070057
call fcn.140007cd0
int3
mov rax, qword [r14 + 0x38]
lea r8, str.Setup_finished_but_an_unknown_problem_encountered:__CompSetup_is_empty___Ret.code:__d_
mov edx, 1
lea rcx, [r14 + 0x38]
call qword [rax + 0xd0]
mov r13d, ebp
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001df5f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001df80
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14001dfa1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x80]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x14001dfc2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, r13d
jmp 0x14001dfd2
mov ecx, 0x80070057
call fcn.140007cd0
nop
mov rbx, qword [rsp + 0x180]
add rsp, 0x140
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret