Function at 0x140044f2c
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov qword [rbp - 0x68], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x1400b7010]
xor rax, rsp
mov qword [rbp + 0x70], rax
mov ebx, edx
mov r15, rcx
mov qword [rsp + 0x70], rcx
xor r14d, r14d
mov eax, 0x104315d0
cmp r8d, eax
ja 0x140045020
je 0x14004508b
mov eax, 0x104313cf
cmp r8d, eax
ja 0x140044fdb
je 0x14004508b
sub r8d, 0x10431090
je 0x14004508b
sub r8d, 0x2e
je 0x14004508b
sub r8d, 0x82
je 0x14004508b
sub r8d, 0x50
je 0x14004508b
sub r8d, 0x40
je 0x14004508b
cmp r8d, 0x140
jmp 0x140045084
cmp r8d, 0x104313ef
je 0x14004508b
lea eax, [r8 - 0x1043141f]
cmp eax, 1
jbe 0x14004508b
cmp r8d, 0x1043145f
je 0x14004508b
cmp r8d, 0x10431550
je 0x14004508b
cmp r8d, 0x10431580
je 0x14004508b
cmp r8d, 0x10431590
jmp 0x140045084
mov eax, 0x10431bcd
cmp r8d, eax
ja 0x14004505f
je 0x14004508b
sub r8d, 0x104315e0
je 0x14004508b
sub r8d, 0x80
je 0x14004508b
sub r8d, 0x70
je 0x14004508b
sub r8d, 0x90
je 0x14004508b
sub r8d, 0x32d
je 0x14004508b
cmp r8d, 0xc0
jmp 0x140045084
sub r8d, 0x10431c5d
je 0x14004508b
sub r8d, 0xe0
je 0x14004508b
sub r8d, 0x30
je 0x14004508b
sub r8d, 0x693a
je 0x14004508b
cmp r8d, 0x4d
mov byte [rsp + 0x50], r14b
jne 0x140045090
mov byte [rsp + 0x50], 1
call fcn.1400212f4
mov rcx, rax
test rax, rax
je 0x140045761
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x40], rax
call fcn.1400212f4
mov rcx, rax
test rax, rax
je 0x14004576c
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x50], rax
call fcn.1400212f4
mov rcx, rax
test rax, rax
je 0x140045777
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x30], rax
call fcn.1400212f4
mov rcx, rax
test rax, rax
je 0x140045782
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x48], rax
call fcn.1400212f4
mov rcx, rax
test rax, rax
je 0x14004578d
mov rax, qword [rax]
call qword [rax + 0x18]
mov rdi, rax
mov qword [rsp + 0x68], rax
lea rcx, [rax + 0x18]
mov qword [rbp - 0x28], rcx
call fcn.1400212f4
mov rcx, rax
test rax, rax
je 0x14004574b
mov rax, qword [rax]
call qword [rax + 0x18]
mov r13, rax
mov qword [rbp - 0x80], rax
lea rcx, [rax + 0x18]
mov qword [rbp - 0x20], rcx
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x58], r14
test r15, r15
je 0x140045663
lea r14, [r15 + 0xd]
lea r12, [r15 + rbx]
cmp r14, r12
ja 0x140045660
mov eax, 0x200
cmp word [r15 + 3], ax
jne 0x140045194
add r14, 0x30
cmp r14, r12
ja 0x140045660
mov eax, dword [r15 + 9]
xor ecx, ecx
test eax, eax
setne sil
mov dword [rsp + 0x5c], ecx
test eax, eax
je 0x140045666
xor edi, edi
mov rcx, r14
mov qword [rbp - 0x70], rcx
add r14, 0x10
cmp r14, r12
ja 0x14004565b
mov r8d, 0x40
lea rdx, [rbp - 0x10]
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_StringFromGUID2]
lea rcx, [rbp - 0x10]
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rbp - 0x18], rax
test rax, rax
je 0x140045756
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.140046944
mov rax, r14
mov qword [rbp - 0x78], rax
add r14, 4
cmp r14, r12
ja 0x140045652
mov dword [rsp + 0x54], edi
mov rdi, qword [rbp - 0x40]
xor ecx, ecx
cmp dword [rax], ecx
jbe 0x140045522
lea r15d, [rcx + 1]
mov dword [rsp + 0x58], r15d
mov r9d, r15d
mov r8, rdi
lea rdx, str.SOFTWAREICEpowerICEsoundParameters_sSettings_d
lea rcx, [rbp - 0x50]
call fcn.140046c84
mov r9d, r15d
mov r8, rdi
lea rdx, [0x14009f080]
lea rcx, [rbp - 0x30]
call fcn.140046c84
lea rax, [rbp - 0x38]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x38], rax
xor eax, eax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0xf013f
mov dword [rsp + 0x20], eax
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rbp - 0x50]
mov r15, 0xffffffff80000002
mov rcx, r15
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCreateKeyExW]
xor edx, edx
test eax, eax
jne 0x14004551a
lea rax, [rbp - 0x38]
mov qword [rsp + 0x40], rax
lea rax, [rbp - 0x58]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rdx
mov dword [rsp + 0x28], 0xf013f
mov dword [rsp + 0x20], edx
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rbp - 0x30]
mov rcx, r15
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCreateKeyExW]
xor edx, edx
test eax, eax
jne 0x14004551a
mov rax, r14
mov qword [rsp + 0x78], rax
add r14, 4
cmp r14, r12
ja 0x140045652
mov r15d, edx
cmp dword [rax], edx
jbe 0x1400453a1
mov qword [rsp + 0x60], r14
add r14, 4
cmp r14, r12
ja 0x140045652
inc r15d
mov r8d, r15d
lea rdx, str.Param_d
lea rcx, [rbp - 0x50]
call fcn.140046c84
mov dword [rsp + 0x28], 4
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov r9d, 3
xor r8d, r8d
mov rdx, qword [rbp - 0x50]
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
xor ecx, ecx
test eax, eax
cmovne esi, ecx
mov dword [rsp + 0x28], 4
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9d, [rcx + 3]
xor r8d, r8d
mov rdx, qword [rbp - 0x50]
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
movzx esi, sil
xor edx, edx
test eax, eax
cmovne esi, edx
mov rax, qword [rsp + 0x78]
cmp r15d, dword [rax]
jb 0x1400452fc
cmp r15d, 0x54c
jae 0x140045446
cmp r15d, 0x54d
jae 0x140045446
mov eax, r15d
lea rcx, [0x14009c6e0]
lea rdi, [rcx + rax*4]
mov r13d, r15d
inc r13d
mov r8d, r13d
lea rdx, str.Param_d
lea rcx, [rbp - 0x50]
call fcn.140046c84
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], rdi
mov r9d, 3
xor r8d, r8d
mov rdx, qword [rbp - 0x50]
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
movzx esi, sil
xor ecx, ecx
test eax, eax
cmovne esi, ecx
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], rdi
lea r9d, [rcx + 3]
xor r8d, r8d
mov rdx, qword [rbp - 0x50]
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
movzx esi, sil
xor edx, edx
test eax, eax
cmovne esi, edx
add rdi, 4
cmp r13d, 0x54d
jb 0x1400453bf
mov rdi, qword [rbp - 0x40]
mov r13, qword [rbp - 0x80]
cmp r15d, 0x143
jne 0x1400454cb
mov r8d, 0x436
lea rdx, str.Param_d
lea rcx, [rbp - 0x50]
call fcn.140046c84
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], 1
mov r15d, 3
mov r9d, r15d
xor r8d, r8d
mov rdx, qword [rbp - 0x50]
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
movzx esi, sil
xor ecx, ecx
test eax, eax
cmovne esi, ecx
mov dword [rsp + 0x28], 4
mov qword [rsp + 0x20], 1
mov r9d, r15d
xor r8d, r8d
mov rdx, qword [rbp - 0x50]
mov rcx, qword [rbp - 0x58]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
movzx esi, sil
xor edx, edx
test eax, eax
cmovne esi, edx
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x1400454e0
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
xor edx, edx
mov qword [rbp - 0x60], rdx
mov rcx, qword [rbp - 0x58]
test rcx, rcx
je 0x1400454f5
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
xor ecx, ecx
mov qword [rbp - 0x58], rcx
mov eax, dword [rsp + 0x54]
inc eax
mov dword [rsp + 0x54], eax
mov r15d, dword [rsp + 0x58]
inc r15d
mov dword [rsp + 0x58], r15d
mov rcx, qword [rbp - 0x78]
cmp eax, dword [rcx]
jb 0x140045227
jmp 0x14004551d
mov sil, dl
mov r15, qword [rsp + 0x70]
mov r8, rdi
lea rdx, str.SOFTWAREICEpowerICEsoundParameters_sSettings
lea rcx, [rbp - 0x50]
call fcn.140046c84
lea rax, [rbp - 0x60]
mov qword [rsp + 0x20], rax
mov r9d, 0x102
xor r8d, r8d
mov rdx, qword [rbp - 0x50]
mov rcx, 0xffffffff80000002
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegOpenKeyExW]
movzx edi, sil
xor ecx, ecx
test eax, eax
cmovne edi, ecx
lea rax, [0x14009f160]
lea rdx, [0x14009f03c]
mov sil, byte [rsp + 0x50]
test sil, sil
cmovne rdx, rax
lea rcx, [rbp - 0x48]
call fcn.140046c84
mov rax, qword [0x14009ea30]
mov rcx, qword [rbp - 0x70]
cmp rax, qword [rcx]
jne 0x1400455a3
mov rax, qword [0x14009ea38]
cmp rax, qword [rcx + 8]
je 0x1400455bc
mov rax, qword [0x14009eab0]
cmp rax, qword [rcx]
jne 0x1400455da
mov rax, qword [0x14009eab8]
cmp rax, qword [rcx + 8]
jne 0x1400455da
lea rdx, [0x14009f07c]
test sil, sil
lea rax, [0x14009f15c]
cmovne rdx, rax
lea rcx, [rbp - 0x48]
call fcn.140046c84
mov rax, qword [rbp - 0x48]
mov ecx, dword [rax - 0x10]
lea ecx, [rcx*2 + 2]
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], rax
mov r9d, 1
xor r8d, r8d
lea rdx, str.ActiveSetting
mov rcx, qword [rbp - 0x60]
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExW]
movzx esi, dil
xor edi, edi
test eax, eax
cmovne esi, edi
mov rcx, qword [rbp - 0x60]
test rcx, rcx
je 0x140045629
call qword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
mov qword [rbp - 0x60], rdi
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
test sil, sil
je 0x14004564b
mov edx, dword [rsp + 0x5c]
inc edx
mov dword [rsp + 0x5c], edx
cmp edx, dword [r15 + 9]
jb 0x1400451ae
mov rdi, qword [rsp + 0x68]
jmp 0x140045666
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rdi, qword [rsp + 0x68]
xor r14d, r14d
mov sil, r14b
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [r13 + 0x10], eax
add eax, ebx
test eax, eax
jg 0x140045685
mov rcx, qword [r13]
mov rax, qword [rcx]
mov rdx, r13
call qword [rax + VariantCopy]
nop
mov eax, ebx
lock xadd dword [rdi + 0x10], eax
add eax, ebx
test eax, eax
jg 0x14004569f
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1400456be
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x30]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1400456dd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x50]
add rdx, 0xffffffffffffffe8
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
add eax, ebx
test eax, eax
jg 0x1400456fc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + VariantCopy]
nop
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffe8
mov ecx, ebx
lock xadd dword [rdx + 0x10], ecx
add ecx, ebx
test ecx, ecx
jg 0x14004571b
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rVariantCopy + 8]
mov al, sil
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.140046df0
lea r11, [rsp + 0x180]
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
mov ecx, 0x80004005
call fcn.140044efc
nop
mov ecx, 0x8007000e
call fcn.140044efc
nop
mov ecx, 0x80004005
call fcn.140044efc
nop
mov ecx, 0x80004005
call fcn.140044efc
nop
mov ecx, 0x80004005
call fcn.140044efc
nop
mov ecx, 0x80004005
call fcn.140044efc
nop
mov ecx, 0x80004005
call fcn.140044efc
int3