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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x44
push 0
push 0
dec ecx
jne 0x507bc8
lea eax, [ebp - 0x1e8]
mov edx, dword [0x408d88]
call fcn.00405d64
xor eax, eax
push ebp
push 0x5083b0
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5081e5
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [0x55e980], eax
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
lea eax, [eax*4 + 0x55e988]
call fcn.00405090
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 0xa
jne 0x507c0d
mov dword [0x55e984], 0xffffffff
lea eax, [ebp - 4]
push eax
push 0x20019
push 0
push 0x5083bc
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA_1
test eax, eax
jne 0x507d1e
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 0x507d1e
mov eax, dword [ebp - 0x18]
dec eax
test eax, eax
jl 0x507d1e
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.004057dc
push 0
push 0
push 0
push 0
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 0xc]
call fcn.00405554
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.00405554
mov edx, 0x5083cc
mov ecx, 4
call fcn.00409e74
test eax, eax
je 0x507cfd
mov eax, dword [ebp - 0xc]
call fcn.00405554
mov edx, 0x5083d4
mov ecx, 4
call fcn.00409e74
test eax, eax
jne 0x507d12
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 8]
call fcn.004057dc
push ebp
mov eax, dword [ebp - 0xc]
call fcn.005076f8
pop ecx
inc dword [ebp - 0x14]
dec dword [ebp - 0x20]
jne 0x507c93
cmp dword [0x55e980], 0
jle 0x507d2e
push ebp
call fcn.005078c8
pop ecx
cmp dword [0x55e954], 0
jne 0x507d96
mov dword [ebp - 8], 0x64
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x85]
push eax
push 0
push 0
push 0x5083dc
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x507d96
lea eax, [ebp - 0x1f0]
lea edx, [ebp - 0x85]
mov ecx, 0x65
call fcn.00405300
mov eax, dword [ebp - 0x1f0]
lea edx, [ebp - 0x1ec]
call fcn.0040a13c
mov edx, dword [ebp - 0x1ec]
mov eax, 0x55e954
call fcn.004050e4
cmp dword [0x55e954], 0
je 0x507e24
lea edx, [ebp - 0x1f4]
mov eax, dword [0x55e954]
call fcn.0040b260
mov edx, dword [ebp - 0x1f4]
mov eax, 0x55e978
call fcn.004050e4
lea eax, [ebp - 0x1fc]
push eax
mov eax, dword [0x55e978]
call fcn.00405350
mov edx, eax
sub edx, 3
mov ecx, 4
mov eax, dword [0x55e978]
call fcn.004055b4
mov eax, dword [ebp - 0x1fc]
lea edx, [ebp - 0x1f8]
call fcn.00409d34
mov eax, dword [ebp - 0x1f8]
mov edx, 0x5083ec
call fcn.004054a0
jne 0x507e24
mov eax, dword [0x55e978]
call fcn.00405350
mov edx, eax
sub edx, 4
mov eax, 0x55e978
call fcn.004057dc
cmp dword [0x55e954], 0
jne 0x508183
cmp dword [0x55e97c], 0
jne 0x507ee2
cmp dword [0x55e980], 0
jle 0x507e69
cmp dword [0x55e984], 0xffffffff
je 0x507e69
mov eax, 0x55e978
mov edx, dword [0x55e984]
mov edx, dword [edx*4 + 0x55e988]
call fcn.004050e4
jmp 0x507e73
mov eax, 0x55e978
call fcn.00405090
cmp dword [0x55e978], 0
jne 0x507ec4
mov dword [ebp - 8], 0x64
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x85]
push eax
push 0
push 0
push 0x5083f4
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x507ec4
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x86], 0
mov eax, 0x55e978
lea edx, [ebp - 0x85]
mov ecx, 0x65
call fcn.00405300
cmp dword [0x55e978], 0
jne 0x507f5e
mov eax, 0x55e954
mov edx, 0x508408
call fcn.004050e4
jmp 0x507f5e
mov eax, dword [0x55e980]
dec eax
test eax, eax
jl 0x507f39
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], 0
mov eax, dword [0x55e97c]
call fcn.00405554
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax*4 + 0x55e9d8]
call fcn.00405554
pop edx
call fcn.00409e34
test eax, eax
jne 0x507f31
mov eax, 0x55e978
mov edx, dword [ebp - 0x14]
mov edx, dword [edx*4 + 0x55e988]
call fcn.004050e4
jmp 0x507f39
inc dword [ebp - 0x14]
dec dword [ebp - 0x20]
jne 0x507ef7
cmp dword [0x55e978], 0
jne 0x507f5e
mov eax, 0x55e954
mov ecx, dword [0x55e97c]
mov edx, 0x508418
call fcn.004053a0
push ebp
call fcn.00507b28
pop ecx
cmp dword [0x55e978], 0
je 0x508183
lea eax, [ebp - 0x10]
call fcn.00405090
mov eax, dword [0x55e978]
call fcn.00405350
mov edx, dword [0x55e978]
cmp byte [edx + eax - 1], 0x5c
jne 0x507fa1
mov eax, dword [0x55e978]
call fcn.00405350
mov edx, eax
dec edx
mov eax, 0x55e978
call fcn.004057dc
push dword [0x55e978]
push 0x508424
push 0x508408
lea eax, [ebp - 0x200]
mov edx, 3
call fcn.00405414
mov eax, dword [ebp - 0x200]
lea ecx, [ebp - 0x1e8]
mov edx, 0x3f
call fcn.0040b080
test eax, eax
jne 0x50800a
push dword [0x55e978]
push 0x508424
push 0x508408
mov eax, 0x55e954
mov edx, 3
call fcn.00405414
lea eax, [ebp - 0x1e8]
call fcn.0040b0f4
jmp 0x50813a
push dword [0x55e978]
push 0x508434
push 0x508408
lea eax, [ebp - 0x204]
mov edx, 3
call fcn.00405414
mov eax, dword [ebp - 0x204]
lea ecx, [ebp - 0x1e8]
mov edx, 0x3f
call fcn.0040b080
test eax, eax
jne 0x508073
push dword [0x55e978]
push 0x508434
push 0x508408
mov eax, 0x55e954
mov edx, 3
call fcn.00405414
lea eax, [ebp - 0x1e8]
call fcn.0040b0f4
jmp 0x50813a
push dword [0x55e978]
push 0x508424
push 0x508440
lea eax, [ebp - 0x208]
mov edx, 3
call fcn.00405414
mov eax, dword [ebp - 0x208]
lea ecx, [ebp - 0x1e8]
mov edx, 0x3f
call fcn.0040b080
test eax, eax
jne 0x50813a
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 0x20c]
xor edx, edx
mov eax, dword [ebp - 0x1d4]
call fcn.0040b198
mov eax, dword [ebp - 0x20c]
mov ecx, 6
mov edx, 4
call fcn.004055b4
mov eax, dword [ebp - 0xc]
mov al, byte [eax]
add al, 0xd0
sub al, 0xa
jae 0x508120
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
call fcn.004054a0
jbe 0x508120
push dword [0x55e978]
push 0x508424
push dword [ebp - 0x1d4]
mov eax, 0x55e954
mov edx, 3
call fcn.00405414
lea eax, [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.00405128
lea eax, [ebp - 0x1e8]
call fcn.0040b0d0
test eax, eax
je 0x5080b1
lea eax, [ebp - 0x1e8]
call fcn.0040b0f4
cmp dword [0x55e954], 0
jne 0x508183
cmp dword [0x55e97c], 0
jne 0x50815d
mov eax, 0x55e954
mov edx, 0x508408
call fcn.004050e4
jmp 0x508183
push dword [0x55e978]
push 0x508424
push 0x508454
mov eax, 0x55e954
mov edx, 3
call fcn.00405414
push ebp
call fcn.00507b28
pop ecx
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x85]
push eax
push 0
push 0
push 0x508458
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
jne 0x5081bd
mov edx, 0x508460
lea eax, [ebp - 0x85]
mov ecx, 3
call fcn.0040b6d4
test eax, eax
je 0x5081c1
xor eax, eax
jmp 0x5081c3
mov al, 1
mov byte [0x55e974], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5081ec
cmp dword [ebp - 4], 0
je 0x5081e4
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegCloseKey_1
ret