Function at 0x40734b
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [ebp - 4], str.SIDiag.DLL
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [str.SoftwareMOXADriver]
push ecx
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
je 0x407379
xor eax, eax
jmp 0x40756b
mov dword [ebp - 0x10], 0
jmp 0x40738b
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 0x17
jge 0x40741a
lea eax, [ebp - 0xc]
push eax
mov ecx, dword [ebp - 0x10]
shl ecx, 4
mov edx, dword [ecx + 0x40ecd4]
push edx
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
je 0x4073b6
jmp 0x40741a
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
mov edx, dword [ebp - 4]
push edx
push 1
push 0
mov eax, dword [str.DiagDLL]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edx, dword [ebp - 0x10]
shl edx, 4
xor eax, eax
mov ax, word [edx + 0x40ecca]
and al, 0xf8
mov dword [ebp - 8], eax
push 4
lea ecx, [ebp - 8]
push ecx
push 4
push 0
mov edx, dword [str.mxkey]
push edx
mov eax, dword [ebp - 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x407382
mov dword [ebp - 0x10], 0
jmp 0x40742c
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 7
jge 0x4074bb
lea eax, [ebp - 0xc]
push eax
mov ecx, dword [ebp - 0x10]
imul ecx, ecx, 0x18
mov edx, dword [ecx + 0x40ee4c]
push edx
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
je 0x407457
jmp 0x4074bb
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
mov edx, dword [ebp - 4]
push edx
push 1
push 0
mov eax, dword [str.DiagDLL]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edx, dword [ebp - 0x10]
imul edx, edx, 0x18
xor eax, eax
mov ax, word [edx + 0x40ee3c]
and al, 0xf8
mov dword [ebp - 8], eax
push 4
lea ecx, [ebp - 8]
push ecx
push 4
push 0
mov edx, dword [str.mxkey]
push edx
mov eax, dword [ebp - 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x407423
mov dword [ebp - 0x10], 0
jmp 0x4074cd
mov edx, dword [ebp - 0x10]
add edx, 1
mov dword [ebp - 0x10], edx
cmp dword [ebp - 0x10], 6
jge 0x40755c
lea eax, [ebp - 0xc]
push eax
mov ecx, dword [ebp - 0x10]
imul ecx, ecx, 0x18
mov edx, dword [ecx + 0x40eef4]
push edx
mov eax, dword [ebp - 0x14]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
je 0x4074f8
jmp 0x40755c
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
add eax, 1
push eax
mov edx, dword [ebp - 4]
push edx
push 1
push 0
mov eax, dword [str.DiagDLL]
push eax
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov edx, dword [ebp - 0x10]
imul edx, edx, 0x18
xor eax, eax
mov ax, word [edx + 0x40eee4]
and al, 0xf8
mov dword [ebp - 8], eax
push 4
lea ecx, [ebp - 8]
push ecx
push 4
push 0
mov edx, dword [str.mxkey]
push edx
mov eax, dword [ebp - 0xc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x4074c4
mov edx, dword [ebp - 0x14]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
mov esp, ebp
pop ebp
ret