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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x42c
mov eax, dword [0x4be5b4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x414], eax
mov eax, dword [ebp + 0x10]
push ebx
mov dword [ebp - 0x418], eax
mov eax, dword [ebp + 0x14]
push esi
mov ebx, dword [ebp + 8]
xor esi, esi
mov dword [ebp - 0x41c], eax
mov eax, dword [ebp + 0x18]
push edi
mov dword [ebp - 0x420], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x424], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x428], eax
lea eax, [ebp - 0x42c]
push eax
lea eax, [ebp - 0x410]
mov dword [ebp - 0x410], esi
push eax
push esi
push 0x203
push esi
push esi
push esi
push str.SOFTWARELDSGameMaster
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
lea eax, [ebp - 0x204]
push 0x200
cmove esi, dword [ebp - 0x410]
push 0
push eax
call fcn.00432c40
add esp, 0xc
mov dword [ebp - 0x408], 0x200
lea eax, [ebp - 0x408]
push eax
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x40c]
push eax
push 0
push 0x485e7c
push esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x467146
mov eax, dword [ebp - 0x40c]
cmp eax, 1
je 0x467052
cmp eax, 2
jne 0x467075
mov eax, dword [ebp - 0x408]
test eax, eax
je 0x467135
test al, 1
jne 0x467075
shr eax, 1
cmp word [ebp + eax*2 - 0x206], 0
je 0x467151
xor edi, edi
push 0x200
lea eax, [ebp - 0x404]
push 0
push eax
call fcn.00432c40
add esp, 0xc
mov dword [ebp - 0x408], 0x200
lea eax, [ebp - 0x408]
push eax
lea eax, [ebp - 0x404]
push eax
lea eax, [ebp - 0x40c]
push eax
push 0
push str.SubPID
push esi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x46716b
mov eax, dword [ebp - 0x40c]
cmp eax, 1
je 0x4670d2
cmp eax, 2
jne 0x4670f1
mov eax, dword [ebp - 0x408]
test eax, eax
je 0x46715b
test al, 1
jne 0x4670f1
shr eax, 1
cmp word [ebp + eax*2 - 0x406], 0
je 0x467176
xor eax, eax
test edi, edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
je 0x467180
test eax, eax
jne 0x4671e7
lea ecx, [ebp - 0x204]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467112
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
lea eax, [ebp - 0x204]
push eax
jmp 0x4671db
xor eax, eax
mov word [ebp - 0x204], ax
lea edi, [eax + 1]
jmp 0x467077
cmp eax, 0xea
jne 0x467075
mov edi, 1
jmp 0x467077
xor eax, eax
mov word [ebp - 0x404], ax
mov eax, 1
jmp 0x4670f3
cmp eax, 0xea
jne 0x4670f1
mov eax, 1
jmp 0x4670f3
test ebx, ebx
je 0x4671b4
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467190
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push ebx
push 1
push 0
push 0x485e7c
push esi
call edi
mov ebx, dword [ebp - 0x414]
test ebx, ebx
je 0x4671e7
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4671c3
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push ebx
push 1
push 0
push str.SubPID
push esi
call edi
mov ebx, dword [ebp - 0x418]
test ebx, ebx
je 0x46721a
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4671f6
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push ebx
push 1
push 0
push str.AppType
push esi
call edi
mov ebx, dword [ebp - 0x41c]
test ebx, ebx
je 0x467254
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467230
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push ebx
push 1
push 0
push str.Type
push esi
call edi
mov ebx, dword [ebp - 0x420]
test ebx, ebx
je 0x467287
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467263
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push ebx
push 1
push 0
push str.Setup_Path
push esi
call edi
mov ebx, dword [ebp - 0x424]
test ebx, ebx
je 0x4672ba
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x467296
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push ebx
push 1
push 0
push str.UninstallPath
push esi
call edi
mov ebx, dword [ebp - 0x428]
test ebx, ebx
je 0x4672f4
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4672d0
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
push ebx
push 1
push 0
push str.HallPath
push esi
call edi
test esi, esi
je 0x4672ff
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042c75e
mov esp, ebp
pop ebp
ret 0x1c