Function at 0x14008fb30
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x240
mov qword [rax - 0x1b0], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x140121ef0]
xor rax, rsp
mov qword [rsp + 0x230], rax
lea rsi, [rcx + 0x10e0]
mov qword [rsp + 0x68], rsi
lea rcx, [rsi + 0x810]
call qword [sym.imp.mfc110u.dll_Ordinal_1632]
mov qword [rsp + 0x1a8], 7
xor edi, edi
mov qword [rsp + 0x1a0], rdi
mov word [rsp + 0x190], di
or r13, 0xffffffffffffffff
cmp word [rax], di
jne 0x14008fbad
mov r8d, edi
jmp 0x14008fbba
mov r8, r13
inc r8
cmp word [rax + r8*2], di
jne 0x14008fbb0
mov rdx, rax
lea rcx, [rsp + 0x190]
call fcn.140003310
nop
lea rcx, [rsi + 0x818]
call qword [sym.imp.mfc110u.dll_Ordinal_1632]
mov qword [rsp + 0x218], 7
mov qword [rsp + 0x210], rdi
mov word [rsp + 0x200], di
cmp word [rax], 0
jne 0x14008fbff
mov r8, rdi
jmp 0x14008fc0d
mov r8, r13
inc r8
cmp word [rax + r8*2], 0
jne 0x14008fc02
mov rdx, rax
lea rcx, [rsp + 0x200]
call fcn.140003310
nop
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], rdi
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x98], rdi
lea rcx, [rsp + 0xa8]
call qword [sym.imp.mfc110u.dll_Ordinal_296]
nop
xor r15b, r15b
mov byte [rsp + 0x31], r15b
mov dword [rsp + 0x50], edi
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r9d, 0x20219
xor r8d, r8d
lea rdx, str.SOFTWARESiemensLicenseManagementLicenses
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14008fcb3
lea rax, str.RegistryAccessFailed
mov qword [rsp + 0x68], rax
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0xc8]
call qword [sym.imp.MSVCR110.dll_public:_void___cdecl_std::exception::constructor_char_const__const___ptr64_const____ptr64____ptr64]
lea rdx, [0x14011cb80]
lea rcx, [rsp + 0xc8]
call fcn.1400bb178
lea rdx, [rsp + 0x190]
cmp qword [rsp + 0x1a8], 8
cmovae rdx, qword [rsp + 0x190]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
mov r9d, 0x20219
xor r8d, r8d
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14008fd7b
mov r15b, 1
mov byte [rsp + 0x31], r15b
mov rcx, qword [rsp + 0x1a0]
add rcx, 2
mov eax, 2
mul rcx
cmovo rax, r13
mov rcx, rax
call sub.mfc110u.dll_Ordinal_265
mov rbx, rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x1a0]
mov word [rbx + rax*2], di
mov rax, qword [rsp + 0x1a0]
mov word [rbx + rax*2 + 2], di
lea r8, [rsp + 0x190]
cmp qword [rsp + 0x1a8], 8
cmovae r8, qword [rsp + 0x190]
mov rax, qword [rsp + 0x1a0]
lea rdx, [rax + rax]
mov r9, rdx
mov rcx, rbx
call qword [sym.imp.MSVCR110.dll_memcpy_s]
jmp 0x14008fe39
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, str.Bundles
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400907e4
cmp dword [rsp + 0x34], 7
jne 0x1400907e4
mov ecx, dword [rsp + 0x38]
shr rcx, 1
add rcx, 2
mov eax, 2
mul rcx
cmovo rax, r13
mov rcx, rax
call sub.mfc110u.dll_Ordinal_265
mov rbx, rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x98], rax
mov eax, dword [rsp + 0x38]
shr rax, 1
mov word [rbx + rax*2], di
mov eax, dword [rsp + 0x38]
shr rax, 1
mov word [rbx + rax*2 + 2], di
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, str.Bundles
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400907ab
cmp dword [rsp + 0x34], 7
jne 0x1400907ab
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x58], rdi
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov r9d, 0x20219
xor r8d, r8d
lea rdx, str.SOFTWARESiemensLicenseManagementBundles
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14008fea7
lea rax, str.RegistryAccessFailed
mov qword [rsp + 0x68], rax
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x110]
call qword [sym.imp.MSVCR110.dll_public:_void___cdecl_std::exception::constructor_char_const__const___ptr64_const____ptr64____ptr64]
lea rdx, [0x14011cb80]
lea rcx, [rsp + 0x110]
call fcn.1400bb178
mov r14, rbx
mov qword [rsp + 0xa0], r14
cmp di, word [r14]
je 0x140090774
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov r9d, 0x20219
xor r8d, r8d
mov rdx, r14
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14008ff14
lea rax, str.RegistryAccessFailed
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0xe0]
call qword [sym.imp.MSVCR110.dll_public:_void___cdecl_std::exception::constructor_char_const__const___ptr64_const____ptr64____ptr64]
lea rdx, [0x14011cb80]
lea rcx, [rsp + 0xe0]
call fcn.1400bb178
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, str.Version
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400906f8
cmp dword [rsp + 0x34], 1
jne 0x1400906f8
mov edx, dword [rsp + 0x38]
shr edx, 1
inc edx
lea rcx, [rsp + 0xa8]
call qword [sym.imp.mfc110u.dll_Ordinal_4828]
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, str.Version
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ebx, eax
mov edx, r13d
lea rcx, [rsp + 0xa8]
call qword [sym.imp.mfc110u.dll_Ordinal_12073]
test ebx, ebx
jne 0x1400906c5
cmp dword [rsp + 0x34], 1
jne 0x1400906c5
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, str.Master
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x14009001c
cmp dword [rsp + 0x34], 4
jne 0x14009001c
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, str.Master
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
jmp 0x140090023
mov dword [rsp + 0x90], edi
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x40], rdi
lea rcx, [rsp + 0xa8]
call qword [sym.imp.mfc110u.dll_Ordinal_1632]
mov rdx, rax
lea rcx, [rsp + 0x220]
call fcn.140089c10
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x80], rdi
lea rcx, [rsp + 0x78]
call fcn.140091770
mov qword [rsp + 0x78], rax
lea r8, [rsp + 0x78]
lea rdx, [rsp + 0x220]
mov rcx, r14
call fcn.14008ecb0
test eax, eax
je 0x140090694
test r15b, r15b
je 0x1400901a1
lea rax, [rsp + 0x1b0]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x1c8], 7
mov qword [rsp + 0x1c0], rdi
mov word [rsp + 0x1b0], di
cmp word [r14], 0
jne 0x1400900cb
mov r8, rdi
jmp 0x1400900db
mov r8, r13
nop
inc r8
cmp word [r14 + r8*2], 0
jne 0x1400900d0
mov rdx, r14
lea rcx, [rsp + 0x1b0]
call fcn.140003310
nop
mov qword [rsp + 0x1e8], 7
mov qword [rsp + 0x1e0], rdi
mov word [rsp + 0x1d0], di
cmp word [rsp + 0x220], 0
jne 0x140090118
mov r8, rdi
jmp 0x14009012e
lea rax, [rsp + 0x220]
mov r8, r13
inc r8
cmp word [rax + r8*2], 0
jne 0x140090123
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x1d0]
call fcn.140003310
nop
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x1f0]
call fcn.14008be40
nop
lea rcx, [rsi + 0x8a0]
movzx eax, byte [0x140122948]
mov byte [rsp + 0x20], al
lea r9, [rsp + 0x1b0]
xor r8d, r8d
lea rdx, [rsp + 0x180]
call fcn.14008ac10
nop
lea rcx, [rsp + 0x1b0]
call fcn.1400316d0
mov dword [rsp + 0x50], 1
jmp 0x140090694
mov rsi, qword [rsp + 0x78]
mov r9, qword [rsi + 8]
mov rbx, rsi
mov r15, qword [rsp + 0x1a8]
mov r11, qword [rsp + 0x1a0]
mov r12, qword [rsp + 0x190]
cmp byte [r9 + 0x19], 0
jne 0x140090254
lea rcx, [r9 + 0x20]
lea rdx, [rsp + 0x190]
cmp r15, 8
cmovae rdx, r12
mov r10, qword [rcx + 0x10]
cmp qword [rcx + 0x18], 8
jb 0x1400901f2
mov rcx, qword [rcx]
mov r8, r11
cmp r10, r11
cmovb r8, r10
test r8, r8
jmp 0x140090225
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x140090216
add rcx, 2
add rdx, 2
dec r8
jmp 0x140090225
mov r8d, 1
cmp word [rcx], ax
cmovb r8d, r13d
jmp 0x14009022a
jne 0x140090201
mov r8d, edi
movsxd rax, r8d
test r8d, r8d
jne 0x14009023c
cmp r10, r11
jb 0x14009024b
mov eax, edi
setne al
test eax, eax
js 0x14009024b
mov rbx, r9
mov r9, qword [r9]
jmp 0x1400901c5
mov r9, qword [r9 + 0x10]
jmp 0x1400901c5
cmp rbx, rsi
je 0x1400902ee
lea rcx, [rbx + 0x20]
mov r9, qword [rcx + 0x10]
cmp qword [rcx + 0x18], 8
jb 0x14009026f
mov rcx, qword [rcx]
lea rdx, [rsp + 0x190]
cmp r15, 8
cmovae rdx, r12
mov r8, r9
cmp r11, r9
cmovb r8, r11
test r8, r8
jmp 0x1400902b4
movzx eax, word [rcx]
cmp word [rdx], ax
jne 0x1400902a5
add rdx, 2
add rcx, 2
dec r8
jmp 0x1400902b4
mov r8d, 1
cmp word [rdx], ax
cmovb r8d, r13d
jmp 0x1400902b9
jne 0x140090290
mov r8d, edi
movsxd rax, r8d
test r8d, r8d
jne 0x1400902d3
cmp r11, r9
jae 0x1400902cb
mov eax, r13d
jmp 0x1400902d3
mov eax, edi
cmp r11, r9
setne al
test eax, eax
sets al
test al, al
jne 0x1400902ee
mov qword [rsp + 0xb0], rbx
lea rax, [rsp + 0xb0]
jmp 0x1400902fe
mov qword [rsp + 0x88], rsi
lea rax, [rsp + 0x88]
mov rax, qword [rax]
cmp rax, rsi
jne 0x140090398
cmp word [r14], 0
jne 0x140090316
mov r9, rdi
jmp 0x14009032b
mov r9, r13
nop dword [rax]
inc r9
cmp word [r14 + r9*2], 0
jne 0x140090320
lea rdx, [rsp + 0x190]
cmp r15, 8
cmovae rdx, r12
mov r10, r9
cmp r11, r9
cmovb r10, r11
test r10, r10
je 0x140090377
mov r8, r14
nop dword [rax]
movzx ecx, word [r8]
cmp word [rdx], cx
jne 0x140090368
add rdx, 2
add r8, 2
dec r10
jne 0x140090350
jmp 0x140090377
mov r10d, 1
cmp word [rdx], cx
cmovb r10d, r13d
jmp 0x14009037a
mov r10d, edi
movsxd rcx, r10d
test r10d, r10d
jne 0x140090390
cmp r11, r9
jb 0x140090699
mov ecx, edi
setne cl
test ecx, ecx
jne 0x140090699
lea rcx, [rax + 0x40]
cmp qword [rcx + 0x18], 8
jb 0x1400903a6
mov rcx, qword [rcx]
call qword [sym.imp.MSVCR110.dll__wtol]
mov ebx, eax
lea rcx, [rsp + 0x200]
cmp qword [rsp + 0x218], 8
cmovae rcx, qword [rsp + 0x200]
call qword [sym.imp.MSVCR110.dll__wtol]
cmp ebx, eax
jl 0x140090694
mov qword [rsp + 0x1c8], 7
mov qword [rsp + 0x1c0], rdi
mov word [rsp + 0x1b0], di
cmp word [r14], 0
jne 0x1400903fe
mov r8, rdi
jmp 0x14009040c
mov r8, r13
inc r8
cmp word [r14 + r8*2], 0
jne 0x140090401
mov rdx, r14
lea rcx, [rsp + 0x1b0]
call fcn.140003310
nop
mov qword [rsp + 0x1e8], 7
mov qword [rsp + 0x1e0], rdi
mov word [rsp + 0x1d0], di
cmp word [rsp + 0x220], 0
jne 0x140090449
mov r8, rdi
jmp 0x14009045f
lea rax, [rsp + 0x220]
mov r8, r13
inc r8
cmp word [rax + r8*2], 0
jne 0x140090454
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x1d0]
call fcn.140003310
nop
mov r15, qword [rsp + 0x68]
lea rbx, [r15 + 0x888]
lea rdx, [rsp + 0x1b0]
mov rcx, rbx
call fcn.140075f30
nop
cmp qword [rsp + 0x1e8], 8
jb 0x1400904aa
mov rcx, qword [rsp + 0x1d0]
call sub.mfc110u.dll_Ordinal_1482
mov qword [rsp + 0x1e8], 7
mov qword [rsp + 0x1e0], rdi
mov word [rsp + 0x1d0], di
cmp qword [rsp + 0x1c8], 8
jb 0x1400904de
mov rcx, qword [rsp + 0x1b0]
call sub.mfc110u.dll_Ordinal_1482
cmp dword [rsp + 0x90], 0
je 0x140090593
lea r8, [rsp + 0x200]
lea rdx, [rsp + 0x190]
lea rcx, [rsp + 0x1b0]
call fcn.14008bb40
mov rdx, qword [rbx]
mov rcx, rax
call fcn.140089bc0
movzx esi, al
cmp qword [rsp + 0x1e8], 8
jb 0x14009052f
mov rcx, qword [rsp + 0x1d0]
call sub.mfc110u.dll_Ordinal_1482
mov qword [rsp + 0x1e8], 7
mov qword [rsp + 0x1e0], rdi
mov word [rsp + 0x1d0], di
cmp qword [rsp + 0x1c8], 8
jb 0x140090563
mov rcx, qword [rsp + 0x1b0]
call sub.mfc110u.dll_Ordinal_1482
test sil, sil
je 0x140090593
mov r8, qword [rbx]
lea rcx, [r8 + 0x40]
movzx r9d, byte [rsp + 0x30]
mov rdx, qword [rbx + 8]
call fcn.14008b9d0
mov r8, qword [rbx + 8]
lea rdx, [r8 - 0x40]
mov rcx, rbx
call fcn.1400341c0
add qword [rbx + 8], 0xffffffffffffffc0
lea rax, [rsp + 0x1b0]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0x1c8], 7
mov qword [rsp + 0x1c0], rdi
mov word [rsp + 0x1b0], di
cmp word [r14], 0
jne 0x1400905cb
mov r8, rdi
jmp 0x1400905db
mov r8, r13
nop
inc r8
cmp word [r14 + r8*2], 0
jne 0x1400905d0
mov rdx, r14
lea rcx, [rsp + 0x1b0]
call fcn.140003310
nop
mov qword [rsp + 0x1e8], 7
mov qword [rsp + 0x1e0], rdi
mov word [rsp + 0x1d0], di
cmp word [rsp + 0x220], 0
jne 0x140090618
mov r8, rdi
jmp 0x14009062e
lea rax, [rsp + 0x220]
mov r8, r13
inc r8
cmp word [rax + r8*2], 0
jne 0x140090623
lea rdx, [rsp + 0x220]
lea rcx, [rsp + 0x1d0]
call fcn.140003310
nop
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x1f0]
call fcn.14008be40
nop
lea rcx, [r15 + 0x8a0]
movzx eax, byte [0x140122948]
mov byte [rsp + 0x20], al
lea r9, [rsp + 0x1b0]
xor r8d, r8d
lea rdx, [rsp + 0x170]
call fcn.14008ac10
nop
lea rcx, [rsp + 0x1b0]
call fcn.1400316d0
mov rsi, qword [rsp + 0x78]
mov r9, rsi
mov r8, qword [rsi]
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0x78]
call fcn.1400359e0
mov rcx, qword [rsp + 0x78]
call sub.mfc110u.dll_Ordinal_1482
mov rbx, qword [rsp + 0x48]
jmp 0x140090747
lea rax, str.RegistryAccessFailed
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0x48]
lea rcx, [rsp + 0xf8]
call qword [sym.imp.MSVCR110.dll_public:_void___cdecl_std::exception::constructor_char_const__const___ptr64_const____ptr64____ptr64]
lea rdx, [0x14011cb80]
lea rcx, [rsp + 0xf8]
call fcn.1400bb178
lea rax, str.RegistryAccessFailed
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0x48]
lea rcx, [rsp + reloc.mfc110u.dll_Ordinal_296]
call qword [sym.imp.MSVCR110.dll_public:_void___cdecl_std::exception::constructor_char_const__const___ptr64_const____ptr64____ptr64]
lea rdx, [0x14011cb80]
lea rcx, [rsp + reloc.mfc110u.dll_Ordinal_296]
call fcn.1400bb178
nop
xor edi, edi
or r13, 0xffffffffffffffff
mov rbx, qword [rsp + 0x98]
mov qword [rsp + 0x48], rbx
mov r14, qword [rsp + 0xa0]
mov rax, r13
nop word [rax + rax]
lea rax, [rax + 1]
cmp word [r14 + rax*2], 0
jne 0x140090750
lea r14, [r14 + rax*2]
add r14, 2
mov rsi, qword [rsp + 0x68]
movzx r15d, byte [rsp + 0x31]
jmp 0x14008feaa
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x60], rdi
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x70], rdi
test rbx, rbx
je 0x1400907a9
mov rcx, rbx
call sub.mfc110u.dll_Ordinal_266
mov qword [rsp + 0x98], rdi
jmp 0x140090820
lea rax, str.RegistryAccessFailed
mov qword [rsp + 0x88], rax
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x158]
call qword [sym.imp.MSVCR110.dll_public:_void___cdecl_std::exception::constructor_char_const__const___ptr64_const____ptr64____ptr64]
lea rdx, [0x14011cb80]
lea rcx, [rsp + 0x158]
call fcn.1400bb178
lea rax, str.RegistryAccessFailed
mov qword [rsp + 0x88], rax
lea rdx, [rsp + 0x88]
lea rcx, [rsp + 0x140]
call qword [sym.imp.MSVCR110.dll_public:_void___cdecl_std::exception::constructor_char_const__const___ptr64_const____ptr64____ptr64]
lea rdx, [0x14011cb80]
lea rcx, [rsp + 0x140]
call fcn.1400bb178
nop
xor edi, edi
lea rcx, [rsp + 0xa8]
call qword [sym.imp.mfc110u.dll_Ordinal_1027]
nop
cmp qword [rsp + 0x218], 8
jb 0x140090847
mov rcx, qword [rsp + 0x200]
call sub.mfc110u.dll_Ordinal_1482
mov qword [rsp + 0x218], 7
mov qword [rsp + 0x210], rdi
mov word [rsp + 0x200], di
cmp qword [rsp + 0x1a8], 8
jb 0x14009087b
mov rcx, qword [rsp + 0x190]
call sub.mfc110u.dll_Ordinal_1482
mov eax, dword [rsp + 0x50]
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.1400bb310
lea r11, [rsp + 0x240]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret