Function at 0x140055350
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1cc0]
mov eax, 0x1dc0
call fcn.1400d9eb0
sub rsp, rax
mov qword [rbp - 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x1df8], rbx
mov qword [rsp + 0x1e00], rsi
mov qword [rsp + 0x1e08], rdi
mov rax, qword [0x1401cee90]
xor rax, rsp
mov qword [rbp + 0x1cb0], rax
mov r12, rcx
mov qword [rbp - 0x80], rcx
mov qword [rbp - 0x50], rcx
xor r14d, r14d
mov dword [rsp + 0x74], r14d
mov qword [rsp + 0x58], r14
mov dword [rsp + 0x60], r14d
mov qword [rsp + 0x68], r14
mov r8d, dword [0x1401d6d80]
mov ecx, r8d
imul ecx, r8d
imul ecx, r8d
mov eax, 0x6bca1af3
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x13
sub ecx, edx
cmp ecx, 0x10
jne 0x14005541a
mov ecx, r8d
test r8d, r8d
je 0x140055410
dec ecx
je 0x140055407
inc r8d
mov dword [0x1401d6d80], r8d
jmp 0x14005541a
mov dword [0x1401d6d80], r14d
jmp 0x14005541a
mov dword [0x1401d6d80], 2
lea rcx, str.D_r_
mov rax, qword [str.D_r_]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x38], rdi
lea rcx, str.D_r_
mov rax, qword [str.D_r_]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x40], rbx
mov r8d, dword [0x1401d6d80]
lea ecx, [r8 + 2]
lea eax, [r8 + 1]
imul ecx, eax
imul ecx, r8d
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 2
sub ecx, eax
cmp ecx, 5
jne 0x14005548b
dec r8d
mov dword [0x1401d6d80], r8d
mov qword [rbp - 0x68], r14
lea rax, [rbp - 0x68]
mov qword [rsp + 0x20], rax
mov esi, 1
mov r9d, esi
xor r8d, r8d
lea rdx, [0x1401601a0]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
or r13, 0xffffffffffffffff
test eax, eax
jne 0x1400554c5
mov r15, qword [rbp - 0x68]
jmp 0x1400554f8
mov qword [rbp - 0x78], r14
lea rax, [rbp - 0x78]
mov qword [rsp + 0x20], rax
mov r9d, esi
xor r8d, r8d
lea rdx, str.SOFTWAREMicrosoftWindows_NTCurrentVersion
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140055c4f
mov r15, qword [rbp - 0x78]
mov qword [rsp + 0x58], r15
mov dword [rsp + 0x60], r14d
mov word [rbp + 0x4d0], r14w
xor edx, edx
mov r8d, 0x7fe
lea rcx, [rbp + 0x4d2]
call fcn.1400da240
mov dword [rsp + 0x54], 0x800
lea rax, [rsp + 0x54]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x4d0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x78]
xor r8d, r8d
lea rdx, str.CurrentVersion
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140055bcd
mov eax, dword [rsp + 0x78]
dec eax
cmp eax, esi
ja 0x140055bcd
mov eax, dword [rsp + 0x54]
test eax, eax
je 0x14005558e
test sil, al
jne 0x140055bcd
shr rax, 1
cmp word [rbp + rax*2 + 0x4ce], 0
je 0x140055596
jmp 0x140055bcd
mov word [rbp + 0x4d0], r14w
lea rax, [rbp + 0x4d0]
mov rbx, r13
inc rbx
cmp word [rax + rbx*2], 0
jne 0x1400555a0
test ebx, ebx
jne 0x14005560f
lea rdx, [rdi - 0x18]
mov rbx, qword [rdx]
cmp dword [rdx + 8], 0
je 0x140055697
cmp dword [rdx + 0x10], 0
jge 0x1400555e3
cmp dword [rdi - 0xc], 0
jge 0x1400555d6
mov ecx, 0x80070057
call fcn.140001920
int3
mov dword [rdi - 0x10], r14d
mov word [rdi], r14w
jmp 0x140055697
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400555f3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x38], rdi
mov r15, qword [rsp + 0x58]
jmp 0x140055697
mov r14d, dword [rdi - 0x10]
lea rsi, [rbp + 0x4d0]
sub rsi, rdi
sar rsi, 1
test ebx, ebx
jns 0x14005562f
mov ecx, 0x80070057
call fcn.140001920
int3
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, ebx
or eax, ecx
jge 0x140055651
mov edx, ebx
lea rcx, [rsp + 0x38]
call fcn.140002760
mov rdi, qword [rsp + 0x38]
movsxd rax, ebx
movsxd rdx, dword [rdi - 0xc]
mov rcx, rdi
add rdx, rdx
cmp rsi, r14
lea r14, [rax + rax]
mov r9, r14
ja 0x140055675
lea r8, [rdi + rsi*2]
call fcn.1400d562c
jmp 0x140055681
lea r8, [rbp + 0x4d0]
call fcn.1400d57ec
cmp ebx, dword [rdi - 0xc]
jg 0x140055bc2
mov dword [rdi - 0x10], ebx
xor eax, eax
mov word [r14 + rdi], ax
xor r14d, r14d
mov eax, dword [0x1401d6d80]
lea ecx, [rax + 1]
imul ecx, eax
mov eax, 0xb21642c9
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x17
sub ecx, edx
cmp ecx, 4
jne 0x1400557e7
mov rbx, r14
mov esi, 0x8b
nop dword [rax]
call fcn.1400d57c0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [rbp + rbx*8 + 0x70], xmm0
inc rbx
cmp rbx, rsi
jb 0x1400556d0
mov r9, r14
mov r10d, 0x8a
nop word [rax + rax]
mov edx, 0x8a
cmp r9, rdx
jge 0x1400557d8
cmp r10, 4
jl 0x1400557ad
lea rcx, [rbp + 0x4b0]
mov r8d, 0x86
sub r8, r9
shr r8, 2
inc r8
lea rax, [r8*4]
sub rdx, rax
nop word [rax + rax]
movsd xmm0, qword [rcx + 0x10]
movsd xmm1, qword [rcx + 8]
comisd xmm0, xmm1
jbe 0x14005575a
movsd qword [rcx + 0x10], xmm1
movsd qword [rcx + 8], xmm0
movsd xmm0, qword [rcx + 8]
movsd xmm1, qword [rcx]
comisd xmm0, xmm1
jbe 0x140055772
movsd qword [rcx + 8], xmm1
movsd qword [rcx], xmm0
movsd xmm0, qword [rcx]
movsd xmm1, qword [rcx - 8]
comisd xmm0, xmm1
jbe 0x14005578a
movsd qword [rcx], xmm1
movsd qword [rcx - 8], xmm0
movsd xmm0, qword [rcx - 8]
movsd xmm1, qword [rcx - 0x10]
comisd xmm0, xmm1
jbe 0x1400557a4
movsd qword [rcx - 8], xmm1
movsd qword [rcx - 0x10], xmm0
sub rcx, 0x20
dec r8
jne 0x140055740
cmp rdx, r9
jle 0x1400557d8
movsd xmm0, qword [rbp + rdx*8 + 0x70]
movsd xmm1, qword [rbp + rdx*8 + 0x68]
comisd xmm0, xmm1
jbe 0x1400557d0
movsd qword [rbp + rdx*8 + 0x70], xmm1
movsd qword [rbp + rdx*8 + 0x68], xmm0
dec rdx
cmp rdx, r9
jg 0x1400557b2
inc r9
dec r10
dec rsi
jne 0x140055700
lea rcx, str.D_r_
mov rax, qword [str.D_r_]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
lea r8, [0x14015dc4c]
test r8, 0xffffffffffff0000
jne 0x14005583c
movzx esi, r8w
mov ecx, esi
call fcn.1400019e0
test rax, rax
je 0x1400558b1
mov r8d, esi
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140002960
mov rbx, qword [rsp + 0x30]
jmp 0x1400558b1
mov r14d, dword [rbx - 0x10]
mov rsi, r8
sub rsi, rbx
sar rsi, 1
mov edx, 1
mov ecx, edx
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
dec eax
or eax, ecx
jge 0x140055872
lea rcx, [rsp + 0x30]
call fcn.140002760
mov rbx, qword [rsp + 0x30]
lea r8, [0x14015dc4c]
movsxd rdx, dword [rbx - 0xc]
mov r9d, 2
mov rcx, rbx
add rdx, rdx
cmp rsi, r14
ja 0x140055892
lea r8, [rbx + rsi*2]
call fcn.1400d562c
jmp 0x140055897
call fcn.1400d57ec
cmp dword [rbx - 0xc], 1
jl 0x140055bb7
mov ecx, 1
mov dword [rbx - 0x10], ecx
xor r14d, r14d
mov word [rbx + 2], r14w
mov dword [rsp + 0x4c], 0x800
lea rax, [rsp + 0x4c]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x4d0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x70]
xor r8d, r8d
lea rdx, str.CurrentBuild
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
test eax, eax
jne 0x14005592b
mov eax, dword [rsp + 0x70]
dec eax
cmp eax, 1
jbe 0x1400558ff
mov esi, 0xd
jmp 0x14005592b
mov eax, dword [rsp + 0x4c]
test eax, eax
je 0x140055920
test al, 1
jne 0x140055919
shr rax, 1
cmp word [rbp + rax*2 + 0x4ce], 0
je 0x140055928
mov esi, 0xd
jmp 0x14005592b
mov word [rbp + 0x4d0], r14w
mov esi, r14d
call fcn.14004fe20
mov ecx, 1
test al, al
jne 0x14005594a
mov eax, dword [0x1401d6d80]
test eax, eax
cmove eax, ecx
mov dword [0x1401d6d80], eax
test esi, esi
jne 0x140055b92
lea rax, [rbp + 0x4d0]
mov rsi, r13
nop dword [rax]
inc rsi
cmp word [rax + rsi*2], 0
jne 0x140055960
test esi, esi
jne 0x1400559cf
lea rdx, [rbx - 0x18]
mov rsi, qword [rdx]
cmp dword [rdx + 8], 0
je 0x140055a4f
cmp dword [rdx + 0x10], 0
jge 0x1400559a3
cmp dword [rbx - 0xc], 0
jge 0x140055996
mov ecx, 0x80070057
call fcn.140001920
int3
mov dword [rbx - 0x10], r14d
mov word [rbx], r14w
jmp 0x140055a4f
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400559b3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
mov rdi, qword [rsp + 0x38]
jmp 0x140055a4f
mov r15d, dword [rbx - 0x10]
lea r14, [rbp + 0x4d0]
sub r14, rbx
sar r14, 1
test esi, esi
jns 0x1400559ef
mov ecx, 0x80070057
call fcn.140001920
int3
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x140055a0c
mov edx, esi
lea rcx, [rsp + 0x30]
call fcn.140002760
mov rbx, qword [rsp + 0x30]
movsxd rax, esi
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
add rdx, rdx
cmp r14, r15
lea r15, [rax + rax]
mov r9, r15
ja 0x140055a30
lea r8, [rbx + r14*2]
call fcn.1400d562c
jmp 0x140055a3c
lea r8, [rbp + 0x4d0]
call fcn.1400d57ec
cmp esi, dword [rbx - 0xc]
jg 0x140055b87
mov dword [rbx - 0x10], esi
xor eax, eax
mov word [r15 + rbx], ax
lea r8, [rsp + 0x30]
lea rdx, [0x14015dc64]
lea rcx, [rbp - 0x58]
call fcn.14001b660
nop
lea r8, [0x14015dc6c]
mov rdx, rax
lea rcx, [rbp - 0x60]
call fcn.14001b580
nop
mov r14, qword [rax]
movsxd rcx, dword [r14 - 0x10]
mov r15, r14
sub r15, rdi
sar r15, 1
mov r12d, dword [rdi - 0x10]
xor ebx, ebx
mov eax, ebx
test ecx, ecx
setns al
test eax, eax
jne 0x140055aa5
mov ecx, 0x80070057
call fcn.140001920
int3
test r14, r14
jne 0x140055aae
mov esi, ebx
jmp 0x140055abc
mov rdx, rcx
mov rcx, r14
call fcn.1400d5a84
mov rsi, rax
mov ecx, 0x7fffffff
sub ecx, esi
mov edx, ebx
cmp ecx, r12d
setge dl
test edx, edx
jne 0x140055ada
mov ecx, 0x80070057
call fcn.140001920
int3
lea ebx, [r12 + rsi]
test ebx, ebx
jns 0x140055aed
mov ecx, 0x80070057
call fcn.140001920
int3
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, ebx
or eax, ecx
jge 0x140055b0f
mov edx, ebx
lea rcx, [rsp + 0x38]
call fcn.140002760
mov rdi, qword [rsp + 0x38]
cmp r15, r12
ja 0x140055b18
lea r14, [rdi + r15*2]
movsxd rdx, esi
add rdx, rdx
lea rcx, [rdi + r12*2]
mov r9, rdx
mov r8, r14
call fcn.1400d57ec
cmp ebx, dword [rdi - 0xc]
jg 0x140055b7c
mov dword [rdi - 0x10], ebx
movsxd rax, ebx
xor r14d, r14d
mov word [rdi + rax*2], r14w
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140055b59
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x58]
add rdx, 0xffffffffffffffe8
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140055b71
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x30]
mov r12, qword [rbp - 0x80]
jmp 0x140055b92
mov ecx, 0x80070057
call fcn.140001920
nop
mov ecx, 0x80070057
call fcn.140001920
nop
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x140055ba6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r15, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
jmp 0x140055bcd
mov ecx, 0x80070057
call fcn.140001920
nop
mov ecx, 0x80070057
call fcn.140001920
int3
test r15, r15
je 0x140055be0
mov rcx, r15
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x58], r14
mov dword [rsp + 0x60], r14d
mov r9d, dword [0x1401d6d80]
mov ecx, r9d
imul ecx, r9d
imul ecx, r9d
mov eax, 0x38e38e39
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*8]
add eax, eax
sub ecx, eax
cmp ecx, 3
jne 0x140055c56
mov eax, 0x51eb851f
imul r9d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x64
sub r9d, edx
add r9d, 0x7b
movsxd rcx, r9d
mov eax, 4
mul rcx
cmovo rax, r13
mov rcx, rax
call fcn.1400d4448
mov rcx, rax
call fcn.1400d5528
mov r9d, dword [0x1401d6d80]
mov ecx, r9d
imul ecx, r9d
mov eax, 0x78787879
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x11
sub ecx, edx
cmp ecx, 0xe
jne 0x140055c9f
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov r9d, dword [0x1401d6d80]
mov ecx, 7
test rax, rax
cmove r9d, ecx
mov dword [0x1401d6d80], r9d
mov dword [rsp + 0x50], r14d
lea r8d, [r9 + 2]
lea ecx, [r9 + 1]
imul r8d, ecx
imul r8d, r9d
mov eax, 0x78787879
imul r8d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x11
sub r8d, edx
cmp r8d, 3
jne 0x140055d4a
mov word [rbp + 0xcd0], r14w
xor edx, edx
mov r8d, 0xfd0
lea rcx, [rbp + 0xcd2]
call fcn.1400da240
mov r10, r14
mov r9, r14
mov r8, r14
test r10, r10
je 0x140055d24
test r8, r8
je 0x140055d24
lea rdx, [r9 + r8]
lea rax, [r9 + r8]
movzx ecx, word [rbp + rax*2 + 0xc76]
inc cx
add cx, word [rbp + rdx*2 + 0xcce]
mov word [rbp + rdx*2 + 0xcd0], cx
inc r8
cmp r8, 0x2d
jl 0x140055cf7
inc r10
add r9, 0x2d
cmp r9, 0x7e9
jl 0x140055cf4
movsx eax, word [rbp + 0x1ca0]
mov dword [0x1401d6d80], eax
mov dword [rsp + 0x48], r14d
mov qword [rbp - 0x70], r14
mov r9, qword [0x1401d89a0]
test r9, r9
jne 0x140055e36
lea rcx, str.Version.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
test rax, rax
je 0x140055d91
lea rdx, str.GetFileVersionInfoSizeW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r9, rax
mov qword [0x1401d89a0], rax
jmp 0x140055d98
mov r9, qword [0x1401d89a0]
mov r8d, dword [0x1401d6d80]
lea ecx, [r8 + 1]
imul ecx, r8d
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x16
sub ecx, edx
cmp ecx, 0xe
jne 0x140055e2d
mov ecx, r14d
mov eax, 0x60606061
imul r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x55
mov eax, r8d
sub eax, edx
cmp eax, 0x4b
je 0x140055e27
nop word [rax + rax]
mov eax, r8d
or eax, 0xffffff62
add r8d, eax
inc ecx
mov eax, r8d
imul eax, r8d
cmp ecx, eax
jg 0x140055e27
mov eax, 0x60606061
imul r8d
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x55
mov eax, r8d
sub eax, edx
cmp eax, 0x4b
jne 0x140055df0
mov dword [0x1401d6d80], ecx
test r9, r9
je 0x140055fdd
lea rdx, [rsp + 0x50]
lea rcx, [0x1401602f8]
call r9
mov r14d, eax
test eax, eax
je 0x140055fdd
mov eax, dword [0x1401d6d80]
mov r8d, eax
imul r8d, eax
imul r8d, eax
mov eax, 0x92492493
imul r8d
add edx, r8d
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0xe
sub r8d, edx
cmp r8d, 2
jne 0x140055ea3
lea ecx, [r8 + 2]
call fcn.1400d55c0
mov rsi, rax
call fcn.1400d57c0
mov dword [rsi], eax
mov dword [0x1401d6d80], eax
mov rcx, rsi
call fcn.1400d4de0
mov rcx, r14
call fcn.1400d4448
mov r15, rax
mov rcx, qword [0x1401d6e98]
test rcx, rcx
jne 0x140055f08
lea rcx, [0x1401d1e20]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp qword [0x1401d6e98], 0
jne 0x140055ef4
mov ecx, 0xb8
call fcn.1400d55c0
mov qword [rbp - 0x80], rax
test rax, rax
je 0x140055eed
mov rcx, rax
call fcn.140043540
nop
mov qword [0x1401d6e98], rax
lea rcx, [0x1401d1e20]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [0x1401d6e98]
mov qword [rsp + 0x20], r15
mov r9d, r14d
mov r8d, dword [rsp + 0x50]
lea rdx, [0x1401602d8]
call fcn.1400438a0
test eax, eax
je 0x140055fd5
lea r9, [rsp + 0x48]
lea r8, [rbp - 0x70]
lea rdx, [0x14015dc84]
mov rcx, r15
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x140055fd5
cmp dword [rsp + 0x48], 0
je 0x140055fd5
mov rsi, qword [rbp - 0x70]
mov ecx, dword [0x1401d6d80]
imul ecx, ecx
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x16
sub ecx, edx
cmp ecx, 0xa
jne 0x140055f87
lea rcx, [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
cmp dword [rsi], 0xfeef04bd
jne 0x140055fb7
movzx r8d, word [rsi + 0x12]
movzx r9d, word [rsi + 0x10]
movzx eax, word [rsi + 0x16]
mov dword [rsp + 0x20], eax
lea rdx, str._d._d___d_
lea rcx, [rsp + 0x40]
call fcn.1400124a0
mov rbx, qword [rsp + 0x40]
call fcn.140050180
test al, al
jne 0x140055fd5
mov edx, 0xfc
lea r8d, [rdx + 1]
lea rcx, [0x14015dcb4]
call fcn.1400d5714
mov rcx, r15
call fcn.1400d5528
lea rsi, [rdi - 0x18]
mov rcx, qword [rsi]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rsi + 0x10], 0
jl 0x14005600b
cmp rax, qword [rsi]
jne 0x14005600b
mov r14, rsi
lock inc dword [rsi + 0x10]
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
jmp 0x14005604a
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rsi + 8]
call qword [rax]
mov r14, rax
test rax, rax
jne 0x140056027
call fcn.140002850
int3
mov eax, dword [rsi + 8]
mov dword [r14 + 8], eax
mov eax, dword [rsi + 8]
inc eax
movsxd rdx, eax
lea r9, [rdx + rdx]
lea r8, [rsi + 0x18]
add rdx, rdx
lea rcx, [r14 + 0x18]
call fcn.1400d57ec
lea rax, [r14 + 0x18]
mov qword [r12], rax
mov eax, 1
mov dword [rsp + 0x74], eax
xor r14d, r14d
mov eax, r14d
test rbx, rbx
setne al
test eax, eax
jne 0x140056076
mov ecx, 0x80004005
call fcn.140001920
int3
mov rcx, rbx
sub rcx, rdi
nop dword [rax]
movzx eax, word [rdi]
cmp ax, word [rdi + rcx]
jne 0x140056097
add rdi, 2
test ax, ax
jne 0x140056080
mov eax, r14d
jmp 0x14005609c
sbb eax, eax
or eax, 1
test eax, eax
je 0x14005618b
cmp dword [rbx - 0x10], r14d
jl 0x14005618b
lea rdx, [0x140160330]
mov rcx, rbx
call fcn.1400d5c54
test rax, rax
je 0x14005618b
sub rax, rbx
sar rax, 1
test eax, eax
jne 0x14005618b
lea rdi, [rbx - 0x18]
mov r14, qword [r12]
sub r14, 0x18
cmp rdi, r14
je 0x140056188
cmp dword [r14 + 0x10], eax
jl 0x140056179
mov rcx, qword [rdi]
cmp rcx, qword [r14]
jne 0x140056179
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi + 0x10], 0
jl 0x140056118
cmp rax, qword [rdi]
jne 0x140056118
mov rbx, rdi
lock inc dword [rdi + 0x10]
jmp 0x140056156
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi + 8]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x140056134
call fcn.140002850
int3
mov eax, dword [rdi + 8]
mov dword [rbx + 8], eax
mov eax, dword [rdi + 8]
inc eax
movsxd rdx, eax
lea r9, [rdx + rdx]
lea r8, [rdi + 0x18]
add rdx, rdx
lea rcx, [rbx + 0x18]
call fcn.1400d57ec
lock add dword [r14 + 0x10], 0xffffffff
jg 0x14005616a
mov rcx, qword [r14]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbx + 0x18]
mov qword [r12], rax
mov rbx, qword [rsp + 0x40]
jmp 0x140056188
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
mov rcx, r12
call fcn.140002670
xor r14d, r14d
lea rdx, [rbx - 0x18]
lock add dword [rdx + 0x10], 0xffffffff
jg 0x1400561a0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
lock add dword [rsi + 0x10], 0xffffffff
jg 0x1400561b5
mov rcx, qword [rsi]
mov r8, qword [rcx]
mov rdx, rsi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
nop
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x1400561ca
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x58], r14
mov dword [rsp + 0x60], r14d
mov rax, r12
mov rcx, qword [rbp + 0x1cb0]
xor rcx, rsp
call fcn.1400d4e00
lea r11, [rsp + 0x1dc0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret