Function at 0x10012780
Capabilities:
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4cc
mov eax, dword [0x100370b4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
movups xmm0, xmmword [ebp + 8]
push edi
push eax
mov dword [ebp - 0x4b8], ecx
lea eax, [ebp - 0x338]
mov ecx, dword [ebp + 0x20]
mov dword [ebp - 0x4cc], ecx
mov ecx, dword [ebp + 0x24]
push 0x168
push eax
movups xmmword [ebp - 0x4b0], xmm0
mov dword [ebp - 0x4c8], ecx
mov dword [ebp - 0x4c4], 0
call fcn.10018410
mov edi, dword [sym.imp.api_ms_win_core_stringansi_l1_1_0.dll_CharLowerA]
lea eax, [ebp - 0x338]
add esp, 0xc
push eax
call edi
lea eax, [ebp - 0x4c4]
push eax
lea eax, [ebp - 0x4b0]
push eax
call dword [sym.imp.api_ms_win_core_com_l1_1_0.dll_StringFromCLSID]
test eax, eax
je 0x10012819
mov eax, 0xffffff99
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100142a9
mov esp, ebp
pop ebp
ret 0x20
push 0
push 0
push 0x64
lea eax, [ebp - 0x68]
push eax
push 0xffffffffffffffff
push dword [ebp - 0x4c4]
push 0
push 0
call dword [sym.imp.api_ms_win_core_string_l1_1_0.dll_WideCharToMultiByte]
test eax, eax
jne 0x1001284f
mov eax, 0xffffff98
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100142a9
mov esp, ebp
pop ebp
ret 0x20
push ebx
push esi
lea eax, [ebp - 0x68]
push eax
push str.CLSID
lea eax, [ebp - 0x1d0]
push str._s_s
push eax
call fcn.10007240
mov ebx, dword [sym.imp.api_ms_win_core_registry_l2_1_0.dll_RegOpenKeyA]
lea eax, [ebp - 0x4b4]
add esp, 0x10
push eax
lea eax, [ebp - 0x1d0]
push eax
push 0x80000000
call ebx
mov esi, dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
test eax, eax
jne 0x100129ab
push dword [ebp - 0x4b4]
call esi
push str.InprocServer32
lea eax, [ebp - 0x68]
push eax
push str.CLSID
lea eax, [ebp - 0x1d0]
push str._s_s_s
push eax
call fcn.10007240
add esp, 0x14
lea eax, [ebp - 0x4c0]
push eax
lea eax, [ebp - 0x1d0]
push eax
push 0x80000000
call ebx
test eax, eax
jne 0x1001293b
mov esi, dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegQueryValueExA]
lea eax, [ebp - 0x4b4]
push eax
push 0
lea eax, [ebp - 0x4bc]
push eax
push 0
push 0
push dword [ebp - 0x4c0]
call esi
test eax, eax
jne 0x1001292d
cmp dword [ebp - 0x4b4], 0x168
ja 0x1001292d
lea eax, [ebp - 0x4b4]
push eax
lea eax, [ebp - 0x4a0]
push eax
lea eax, [ebp - 0x4bc]
push eax
push 0
push 0
push dword [ebp - 0x4c0]
call esi
push dword [ebp - 0x4c0]
mov esi, dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegCloseKey]
call esi
lea eax, [ebp - 0x4a0]
push eax
call edi
lea ecx, [ebp - 0x338]
lea eax, [ebp - 0x4a0]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x10012970
test dl, dl
je 0x1001296c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x10012970
add eax, 2
add ecx, 2
test dl, dl
jne 0x10012950
xor eax, eax
jmp 0x10012975
sbb eax, eax
or eax, 1
test eax, eax
je 0x10012b39
push str.CLSID
lea eax, [ebp - 0x1d0]
push 0x1002dc70
push eax
call fcn.10007240
add esp, 0xc
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x1d0]
push eax
push 0x80000000
call fcn.100130a0
push str.CLSID
lea eax, [ebp - 0x1d0]
push 0x1002dc70
push eax
call fcn.10007240
add esp, 0xc
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x1d0]
push eax
push 0x80000000
call fcn.10012fc0
lea eax, [ebp - 0x68]
push eax
push str.CLSID
lea eax, [ebp - 0x1d0]
push str._s_s
push eax
call fcn.10007240
add esp, 0x10
lea eax, [ebp - 0x4b4]
push eax
lea eax, [ebp - 0x1d0]
push eax
push 0x80000000
call ebx
test eax, eax
jne 0x10012a49
mov edi, dword [ebp - 0x4cc]
mov ecx, edi
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10012a20
sub ecx, edx
push ecx
push edi
mov edi, dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExA]
push 1
push 0
push 0
push dword [ebp - 0x4b4]
call edi
push dword [ebp - 0x4b4]
call esi
jmp 0x10012a4f
mov edi, dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExA]
lea eax, [ebp - 0x68]
push eax
push str.CLSID
lea eax, [ebp - 0x1d0]
push str._s_s
push eax
call fcn.10007240
add esp, 0x10
lea eax, [ebp - 0x1d0]
push str.InprocServer32
push eax
push 0x80000000
call fcn.10012fc0
push str.InprocServer32
lea eax, [ebp - 0x68]
push eax
push str.CLSID
lea eax, [ebp - 0x1d0]
push str._s_s_s
push eax
call fcn.10007240
add esp, 0x14
lea eax, [ebp - 0x4b4]
push eax
lea eax, [ebp - 0x1d0]
push eax
push 0x80000000
call ebx
test eax, eax
jne 0x10012aed
lea ecx, [ebp - 0x338]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10012ac6
sub ecx, edx
lea eax, [ebp - 0x338]
push ecx
push eax
push 1
push 0
push 0
push dword [ebp - 0x4b4]
call edi
push dword [ebp - 0x4b4]
call esi
lea eax, [ebp - 0x4b4]
push eax
lea eax, [ebp - 0x1d0]
push eax
push 0x80000000
call ebx
test eax, eax
jne 0x10012b39
mov ecx, dword [ebp - 0x4c8]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10012b10
sub ecx, edx
push ecx
push dword [ebp - 0x4c8]
push 1
push 0
push str.ThreadingModel
push dword [ebp - 0x4b4]
call edi
push dword [ebp - 0x4b4]
call esi
push str.ASIO
push str.SOFTWARE
lea eax, [ebp - 0x1d0]
push str._s_s
push eax
call fcn.10007240
add esp, 0x10
lea eax, [ebp - 0x4bc]
push eax
lea eax, [ebp - 0x1d0]
push eax
push 0x80000002
call ebx
test eax, eax
jne 0x10012bf4
push dword [ebp - 0x4bc]
call esi
mov edi, dword [ebp - 0x4b8]
lea eax, [ebp - 0x1d0]
push edi
push str.ASIO
push str.SOFTWARE
push str._s_s_s
push eax
call fcn.10007240
add esp, 0x14
lea eax, [ebp - 0x4bc]
push eax
lea eax, [ebp - 0x1d0]
push eax
push 0x80000002
call ebx
test eax, eax
jne 0x10012c29
push dword [ebp - 0x4bc]
call esi
push str.ASIO
push str.SOFTWARE
lea eax, [ebp - 0x1d0]
push str._s_s
push eax
call fcn.10007240
add esp, 0x10
lea eax, [ebp - 0x1d0]
push edi
push eax
push 0x80000002
call fcn.100130a0
jmp 0x10012c29
push str.SOFTWARE
lea eax, [ebp - 0x1d0]
push 0x1002dc70
push eax
call fcn.10007240
add esp, 0xc
lea eax, [ebp - 0x1d0]
push str.ASIO
push eax
push 0x80000002
call fcn.10012fc0
mov edi, dword [ebp - 0x4b8]
push str.ASIO
push str.SOFTWARE
lea eax, [ebp - 0x1d0]
push str._s_s
push eax
call fcn.10007240
add esp, 0x10
lea eax, [ebp - 0x1d0]
push edi
push eax
push 0x80000002
call fcn.10012fc0
push edi
push str.ASIO
push str.SOFTWARE
lea eax, [ebp - 0x1d0]
push str._s_s_s
push eax
call fcn.10007240
add esp, 0x14
lea eax, [ebp - 0x4b8]
push eax
lea eax, [ebp - 0x1d0]
push eax
push 0x80000002
call ebx
test eax, eax
jne 0x10012cc6
lea ecx, [ebp - 0x68]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10012c97
mov edi, dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExA]
lea eax, [ebp - 0x68]
sub ecx, edx
push ecx
push eax
push 1
push 0
push str.CLSID
push dword [ebp - 0x4b8]
call edi
push dword [ebp - 0x4b8]
call esi
jmp 0x10012ccc
mov edi, dword [sym.imp.api_ms_win_core_registry_l1_1_0.dll_RegSetValueExA]
lea eax, [ebp - 0x4b8]
push eax
lea eax, [ebp - 0x1d0]
push eax
push 0x80000002
call ebx
test eax, eax
jne 0x10012d14
mov ebx, dword [ebp - 0x4cc]
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10012cf0
sub ecx, edx
push ecx
push ebx
push 1
push 0
push str.Description
push dword [ebp - 0x4b8]
call edi
push dword [ebp - 0x4b8]
call esi
mov ecx, dword [ebp - 4]
xor eax, eax
pop esi
pop ebx
xor ecx, ebp
pop edi
call fcn.100142a9
mov esp, ebp
pop ebp
ret 0x20