Function at 0x534e18
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x43
push 0
push 0
dec ecx
jne 0x534e20
lea eax, [ebp - 0x1e0]
mov edx, dword [0x408288]
call fcn.004052b8
xor eax, eax
push ebp
push 0x5355e6
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x53543d
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [0x5c2de4], eax
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
lea eax, [eax*4 + 0x5c2dec]
call fcn.004047d0
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xa
jne 0x534e65
mov dword [0x5c2de8], 0xffffffff
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
push 0x5355f4
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA_1
test eax, eax
jne 0x534f76
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
push 0
push 0
push 0
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryInfoKeyA
test eax, eax
jne 0x534f76
mov eax, dword [ebp - 0x18]
dec eax
test eax, eax
jl 0x534f76
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x1c]
inc eax
mov dword [ebp - 8], eax
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 8]
call fcn.00404e1c
push 0
push 0
push 0
push 0
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 0xc]
call fcn.00404c90
push eax
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegEnumKeyExA
mov eax, dword [ebp - 0xc]
call fcn.00404c90
mov edx, 0x535604
mov ecx, 4
call fcn.00409208
test eax, eax
je 0x534f55
mov eax, dword [ebp - 0xc]
call fcn.00404c90
mov edx, 0x53560c
mov ecx, 4
call fcn.00409208
test eax, eax
jne 0x534f6a
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 8]
call fcn.00404e1c
push ebp
mov eax, dword [ebp - 0xc]
call fcn.00534950
pop ecx
inc dword [ebp - 0x14]
dec dword [ebp - 0x20]
jne 0x534eeb
cmp dword [0x5c2de4], 0
jle 0x534f86
push ebp
call fcn.00534b20
pop ecx
cmp dword [0x5c2db4], 0
jne 0x534fee
mov dword [ebp - 8], 0x64
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x85]
push eax
push 0
push 0
push 0x535614
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x534fee
lea eax, [ebp - 0x1e8]
lea edx, [ebp - 0x85]
mov ecx, 0x65
call fcn.00404a40
mov eax, dword [ebp - 0x1e8]
lea edx, [ebp - 0x1e4]
call fcn.0040925c
mov edx, dword [ebp - 0x1e4]
mov eax, 0x5c2db4
call fcn.00404824
cmp dword [0x5c2db4], 0
je 0x53507c
lea edx, [ebp - 0x1ec]
mov eax, dword [0x5c2db4]
call fcn.00409fd0
mov edx, dword [ebp - 0x1ec]
mov eax, 0x5c2ddc
call fcn.00404824
lea eax, [ebp - 0x1f4]
push eax
mov eax, dword [0x5c2ddc]
call fcn.00404a90
mov edx, eax
sub edx, 3
mov ecx, 4
mov eax, dword [0x5c2ddc]
call fcn.00404cf0
mov eax, dword [ebp - 0x1f4]
lea edx, [ebp - 0x1f0]
call fcn.004090d8
mov eax, dword [ebp - 0x1f0]
mov edx, 0x535624
call fcn.00404bdc
jne 0x53507c
mov eax, dword [0x5c2ddc]
call fcn.00404a90
mov edx, eax
sub edx, 4
mov eax, 0x5c2ddc
call fcn.00404e1c
cmp dword [0x5c2db4], 0
jne 0x5353db
cmp dword [0x5c2de0], 0
jne 0x53513a
cmp dword [0x5c2de4], 0
jle 0x5350c1
cmp dword [0x5c2de8], 0xffffffff
je 0x5350c1
mov eax, 0x5c2ddc
mov edx, dword [0x5c2de8]
mov edx, dword [edx*4 + 0x5c2dec]
call fcn.00404824
jmp 0x5350cb
mov eax, 0x5c2ddc
call fcn.004047d0
cmp dword [0x5c2ddc], 0
jne 0x53511c
mov dword [ebp - 8], 0x64
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x85]
push eax
push 0
push 0
push 0x53562c
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x53511c
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x86], 0
mov eax, 0x5c2ddc
lea edx, [ebp - 0x85]
mov ecx, 0x65
call fcn.00404a40
cmp dword [0x5c2ddc], 0
jne 0x5351b6
mov eax, 0x5c2db4
mov edx, 0x535640
call fcn.00404824
jmp 0x5351b6
mov eax, dword [0x5c2de4]
dec eax
test eax, eax
jl 0x535191
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], 0
mov eax, dword [0x5c2de0]
call fcn.00404c90
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax*4 + 0x5c2e3c]
call fcn.00404c90
pop edx
call fcn.004091c8
test eax, eax
jne 0x535189
mov eax, 0x5c2ddc
mov edx, dword [ebp - 0x14]
mov edx, dword [edx*4 + 0x5c2dec]
call fcn.00404824
jmp 0x535191
inc dword [ebp - 0x14]
dec dword [ebp - 0x20]
jne 0x53514f
cmp dword [0x5c2ddc], 0
jne 0x5351b6
mov eax, 0x5c2db4
mov ecx, dword [0x5c2de0]
mov edx, 0x535650
call fcn.00404adc
push ebp
call fcn.00534d80
pop ecx
cmp dword [0x5c2ddc], 0
je 0x5353db
lea eax, [ebp - 0x10]
call fcn.004047d0
mov eax, dword [0x5c2ddc]
call fcn.00404a90
mov edx, dword [0x5c2ddc]
cmp byte [edx + eax - 1], 0x5c
jne 0x5351f9
mov eax, dword [0x5c2ddc]
call fcn.00404a90
mov edx, eax
dec edx
mov eax, 0x5c2ddc
call fcn.00404e1c
push dword [0x5c2ddc]
push 0x53565c
push 0x535640
lea eax, [ebp - 0x1f8]
mov edx, 3
call fcn.00404b50
mov eax, dword [ebp - 0x1f8]
lea ecx, [ebp - 0x1e0]
mov edx, 0x3f
call fcn.00409df8
test eax, eax
jne 0x535262
push dword [0x5c2ddc]
push 0x53565c
push 0x535640
mov eax, 0x5c2db4
mov edx, 3
call fcn.00404b50
lea eax, [ebp - 0x1e0]
call fcn.00409e6c
jmp 0x535392
push dword [0x5c2ddc]
push 0x53566c
push 0x535640
lea eax, [ebp - 0x1fc]
mov edx, 3
call fcn.00404b50
mov eax, dword [ebp - 0x1fc]
lea ecx, [ebp - 0x1e0]
mov edx, 0x3f
call fcn.00409df8
test eax, eax
jne 0x5352cb
push dword [0x5c2ddc]
push 0x53566c
push 0x535640
mov eax, 0x5c2db4
mov edx, 3
call fcn.00404b50
lea eax, [ebp - 0x1e0]
call fcn.00409e6c
jmp 0x535392
push dword [0x5c2ddc]
push 0x53565c
push 0x535678
lea eax, [ebp - 0x200]
mov edx, 3
call fcn.00404b50
mov eax, dword [ebp - 0x200]
lea ecx, [ebp - 0x1e0]
mov edx, 0x3f
call fcn.00409df8
test eax, eax
jne 0x535392
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 0x204]
xor edx, edx
mov eax, dword [ebp - 0x1d4]
call fcn.00409f08
mov eax, dword [ebp - 0x204]
mov ecx, 6
mov edx, 4
call fcn.00404cf0
mov eax, dword [ebp - 0xc]
mov al, byte [eax]
add al, 0xd0
sub al, 0xa
jae 0x535378
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
call fcn.00404bdc
jbe 0x535378
push dword [0x5c2ddc]
push 0x53565c
push dword [ebp - 0x1d4]
mov eax, 0x5c2db4
mov edx, 3
call fcn.00404b50
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.00404868
lea eax, [ebp - 0x1e0]
call fcn.00409e48
test eax, eax
je 0x535309
lea eax, [ebp - 0x1e0]
call fcn.00409e6c
cmp dword [0x5c2db4], 0
jne 0x5353db
cmp dword [0x5c2de0], 0
jne 0x5353b5
mov eax, 0x5c2db4
mov edx, 0x535640
call fcn.00404824
jmp 0x5353db
push dword [0x5c2ddc]
push 0x53565c
push 0x53568c
mov eax, 0x5c2db4
mov edx, 3
call fcn.00404b50
push ebp
call fcn.00534d80
pop ecx
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x85]
push eax
push 0
push 0
push 0x535690
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x535415
mov edx, 0x535698
lea eax, [ebp - 0x85]
mov ecx, 3
call fcn.0040a294
test eax, eax
je 0x535419
xor eax, eax
jmp 0x53541b
mov al, 1
mov byte [0x5c2dd8], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x535444
cmp dword [ebp - 4], 0
je 0x53543c
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegCloseKey_1
ret