Function at 0x1402222c0
Capabilities:
Set registry value

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x90
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov rax, qword [0x1403ddfb8]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov r10, r9
mov r13, r8
mov r12, rdx
mov r15, rcx
mov qword [rsp + 0x60], rcx
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x50], 0
mov rdi, qword [r9 + 0x18]
cmp rdi, 8
jb 0x140222324
mov rcx, qword [r9]
jmp 0x140222327
mov rcx, r10
mov r11, qword [r9 + 0x10]
mov r8d, 3
cmp r11, r8
cmovb r8, r11
test r8, r8
je 0x14022236e
lea rdx, [0x140309930]
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x14022235c
add rcx, 2
add rdx, 2
sub r8, 1
jne 0x140222344
jmp 0x14022236e
mov r8d, 1
or ebx, 0xffffffff
cmp word [rcx], ax
cmovb r8d, ebx
jmp 0x140222374
xor r8d, r8d
or ebx, 0xffffffff
test r8d, r8d
jne 0x14022240b
cmp r11, 3
jne 0x14022240b
lea esi, [r8 + 1]
mov rax, qword [r15 + 0x10]
lea r14d, [rax*2 + 2]
mov edi, r14d
mov ecx, r14d
call fcn.14026ded8
mov rbx, rax
mov qword [rsp + 0x50], rax
cmp qword [r15 + 0x18], 8
jb 0x1402223b4
mov r15, qword [r15]
mov r9, rdi
mov r8, r15
mov rdx, rdi
mov rcx, rbx
call fcn.140028d70
test eax, eax
je 0x1402226aa
mov r9d, 0x66
mov ecx, esi
lea rax, str.memcpy_s_failed_in_SetRegistryKey
mov qword [rsp + 0x20], rax
lea rdx, str.RegistryCommand.cpp
lea r8, str.XMLUpdater::v2::SetRegistryKey
call fcn.1401fc9c0
nop
test rbx, rbx
je 0x140222871
mov rcx, rbx
call fcn.14026e340
jmp 0x140222871
cmp rdi, 8
jb 0x140222416
mov rcx, qword [r9]
jmp 0x140222419
mov rcx, r10
mov r8d, 3
cmp r11, r8
cmovb r8, r11
test r8, r8
je 0x140222459
lea rdx, [0x140309658]
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x14022244a
add rcx, 2
add rdx, 2
sub r8, 1
jne 0x140222432
jmp 0x140222459
mov r8d, 1
cmp word [rcx], ax
cmovb r8d, ebx
jmp 0x14022245c
xor r8d, r8d
test r8d, r8d
jne 0x140222467
cmp r11, 3
je 0x1402224c5
cmp rdi, 8
jb 0x140222472
mov rcx, qword [r9]
jmp 0x140222475
mov rcx, r10
mov r9d, 5
mov r8d, r9d
cmp r11, r9
cmovb r8, r11
test r8, r8
je 0x1402224b8
lea rdx, str.DWORD
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x1402224a9
add rcx, 2
add rdx, 2
sub r8, 1
jne 0x140222491
jmp 0x1402224b8
mov r8d, 1
cmp word [rcx], ax
cmovb r8d, ebx
jmp 0x1402224bb
xor r8d, r8d
test r8d, r8d
jne 0x14022251b
cmp r11, r9
jne 0x14022251b
xor edx, edx
lea r8d, [rdx + 0xa]
mov rcx, r15
call fcn.140086960
mov dword [rsp + 0x58], eax
mov esi, 4
mov r14d, esi
mov ecx, esi
call fcn.14026ded8
mov rbx, rax
mov qword [rsp + 0x50], rax
mov r9d, esi
lea r8, [rsp + 0x58]
mov edx, esi
mov rcx, rax
call fcn.140028d70
test eax, eax
je 0x1402226aa
lea r9d, [rsi + 0x77]
mov ecx, 1
jmp 0x1402223d5
cmp rdi, 8
jb 0x140222526
mov rcx, qword [r10]
jmp 0x140222529
mov rcx, r10
cmp r11, r9
cmovb r9, r11
test r9, r9
je 0x140222567
lea rdx, str.QWORD
nop dword [rax]
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x140222558
add rcx, 2
add rdx, 2
sub r9, 1
jne 0x140222540
jmp 0x140222567
mov r8d, 1
cmp word [rcx], ax
cmovb r8d, ebx
jmp 0x14022256a
xor r8d, r8d
test r8d, r8d
jne 0x1402225c9
cmp r11, 5
jne 0x1402225c9
xor edx, edx
lea r8d, [r11 + 5]
mov rcx, r15
call fcn.1400db4c0
mov qword [rsp + 0x58], rax
mov esi, listen
mov r14d, 8
mov ecx, r14d
call fcn.14026ded8
mov rbx, rax
mov qword [rsp + 0x50], rax
mov r9d, r14d
lea r8, [rsp + 0x58]
mov edx, r14d
mov rcx, rax
call fcn.140028d70
test eax, eax
je 0x1402226aa
mov r9d, 0x90
jmp 0x14022250c
cmp rdi, 8
jb 0x1402225d4
mov rcx, qword [r10]
jmp 0x1402225d7
mov rcx, r10
mov r8d, 3
cmp r11, r8
cmovb r8, r11
test r8, r8
je 0x140222617
lea rdx, [0x14030b140]
movzx eax, word [rdx]
cmp word [rcx], ax
jne 0x140222608
add rcx, 2
add rdx, 2
sub r8, 1
jne 0x1402225f0
jmp 0x140222617
mov r8d, 1
cmp word [rcx], ax
cmovb r8d, ebx
jmp 0x14022261a
xor r8d, r8d
test r8d, r8d
jne 0x140222838
cmp r11, 3
jne 0x140222838
mov rax, qword [r15 + 0x10]
inc rax
shr rax, 1
mov r14d, eax
mov ecx, eax
call fcn.14026ded8
mov rbx, rax
mov qword [rsp + 0x50], rax
cmp qword [r15 + 0x18], 8
jb 0x140222655
mov rcx, qword [r15]
jmp 0x140222658
mov rcx, r15
mov r8, r14
mov rdx, rbx
call fcn.1402218d0
test al, al
jne 0x1402226a5
cmp qword [r15 + 0x18], 8
jb 0x140222671
mov r15, qword [r15]
mov qword [rsp + 0x28], r15
lea rax, str.Unable_to_convert__s_to_hex
mov qword [rsp + 0x20], rax
mov r9d, 0x9a
lea r8, str.XMLUpdater::v2::SetRegistryKey
lea rdx, str.RegistryCommand.cpp
mov ecx, 1
call fcn.1401fc9c0
jmp 0x1402223f5
mov esi, 3
xor r15d, r15d
mov qword [rsp + 0x78], r15
cmp qword [r12 + 0x18], 8
jb 0x1402226c0
mov rdx, qword [r12]
jmp 0x1402226c3
mov rdx, r12
mov r8d, r15d
cmp byte [rsp + 0xf0], r8b
setne r8b
mov qword [rsp + 0x40], r15
lea rax, [rsp + 0x78]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r15
mov eax, dword [rsp + 0xf8]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r8d
xor r9d, r9d
xor r8d, r8d
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
je 0x140222769
cmp qword [r12 + 0x18], 8
jb 0x140222717
mov r12, qword [r12]
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], eax
lea rax, str.Error___d__creating_registry_key:__s
mov qword [rsp + 0x20], rax
mov r9d, 0xab
lea r8, str.XMLUpdater::v2::SetRegistryKey
lea rdx, str.RegistryCommand.cpp
mov ecx, 1
call fcn.1401fc9c0
nop
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x1402223f5
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x78], r15
jmp 0x1402223f5
cmp qword [r13 + 0x10], 0
ja 0x14022277c
lea rdi, str._Default_
mov rdx, rdi
jmp 0x140222793
cmp qword [r13 + 0x18], 8
jb 0x140222789
mov rdx, qword [r13]
jmp 0x14022278c
mov rdx, r13
lea rdi, str._Default_
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], rbx
mov r9d, esi
xor r8d, r8d
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x140222812
cmp qword [r13 + 0x10], 0
jbe 0x1402227c9
cmp qword [r13 + 0x18], 8
jb 0x1402227c6
mov rdi, qword [r13]
jmp 0x1402227c9
mov rdi, r13
cmp qword [r12 + 0x18], 8
jb 0x1402227d5
mov r12, qword [r12]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], eax
lea rax, str.Error___d__setting_value___s__under_registry_key:__s
mov qword [rsp + 0x20], rax
mov r9d, VariantTimeToSystemTime
lea r8, str.XMLUpdater::v2::SetRegistryKey
lea rdx, str.RegistryCommand.cpp
mov ecx, 1
call fcn.1401fc9c0
jmp 0x14022274b
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140222827
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x78], r15
test rbx, rbx
je 0x140222834
mov rcx, rbx
call fcn.14026e340
mov al, 1
jmp 0x140222873
cmp rdi, 8
jb 0x140222841
mov r10, qword [r10]
mov qword [rsp + 0x28], r10
lea rax, str.Unknown_registry_key_type:__s
mov qword [rsp + 0x20], rax
mov r9d, reloc.OLEAUT32.dll_LoadRegTypeLib
lea r8, str.XMLUpdater::v2::SetRegistryKey
lea rdx, str.RegistryCommand.cpp
mov ecx, 1
call fcn.1401fc9c0
nop
xor al, al
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.14026d870
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret