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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x13c
mov eax, dword [ebp + 8]
push ebx
push esi
add eax, 0x4c
push edi
push eax
lea ecx, [ebp - 0x20]
call fcn.00402f56
push 0x2e
lea ecx, [ebp - 0x20]
call fcn.00403092
push 0x5c
lea ecx, [ebp - 0x20]
mov esi, eax
call fcn.00403092
cmp esi, eax
jle 0x40d5ed
xor ebx, ebx
push esi
push ebx
lea ecx, [ebp - 0x20]
call fcn.00403827
mov edi, 0x447348
mov esi, MenuHelp
push edi
lea eax, [ebp - 0x30]
push dword [ebp - 0x20]
push esi
push eax
call fcn.0040bd10
add esp, 0x10
push edi
push dword [ebp - 0x30]
call fcn.004347b0
neg eax
sbb eax, eax
pop ecx
inc eax
pop ecx
test al, al
je 0x40d59f
lea eax, [ebp - 0x20]
lea ecx, [ebp - 0x30]
push eax
call fcn.00403163
mov ecx, dword [ebp + 0xc]
mov dword [ebp + 8], ebx
call fcn.00403c6a
mov ecx, dword [ebp + 0x10]
call fcn.00403c6a
lea eax, [ebp + 8]
push eax
push 8
push ebx
lea eax, [ebp - 0x30]
push 0x440528
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.004039af
add esp, 0xc
push dword [eax]
push esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea ecx, [ebp - 0x14]
mov esi, eax
call fcn.00402fbc
cmp esi, ebx
je 0x40d5fc
lea ecx, [ebp - 0x30]
call fcn.00402fbc
lea ecx, [ebp - 0x20]
call fcn.00402fbc
xor al, al
jmp 0x40d78e
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyA]
mov esi, 0x104
lea eax, [ebp - 0x13c]
push esi
push eax
push ebx
push dword [ebp + 8]
mov dword [ebp - 4], ebx
call edi
mov ebx, 0x103
cmp eax, ebx
je 0x40d741
test eax, eax
jne 0x40d729
lea eax, [ebp - 0x13c]
push str.ShtirlitzIV
push eax
call fcn.004347b0
pop ecx
test eax, eax
pop ecx
je 0x40d729
mov ecx, dword [ebp + 0xc]
lea eax, [ebp - 0x13c]
push eax
call fcn.00403d24
lea eax, [ebp - 0x13c]
lea ecx, [ebp - 0x14]
push eax
call fcn.00402ebe
lea eax, [ebp - 8]
and dword [ebp - 8], 0
push eax
push 0x20019
lea eax, [ebp - 0x13c]
push 0
push eax
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40d6d8
lea eax, [ebp - 0x24]
mov dword [ebp - 0x24], esi
push eax
lea eax, [ebp - 0x13c]
push eax
lea eax, [ebp - 0x34]
push eax
push 0
push 0x447348
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x40d6cf
lea eax, [ebp - 0x13c]
push eax
call fcn.004345e0
test eax, eax
pop ecx
jbe 0x40d6cf
lea eax, [ebp - 0x13c]
lea ecx, [ebp - 0x14]
push eax
call fcn.004031a9
push dword [ebp - 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str.open
lea ecx, [ebp - 0x14]
call fcn.00403445
test eax, eax
jne 0x40d6f0
push 0xdb
jmp 0x40d706
push str.print
lea ecx, [ebp - 0x14]
call fcn.00403445
test eax, eax
jne 0x40d715
push 0xdc
call fcn.00420134
pop ecx
push eax
lea ecx, [ebp - 0x14]
call fcn.004031a9
mov ecx, dword [ebp + 0x10]
lea eax, [ebp - 0x14]
push eax
call fcn.00403caf
lea ecx, [ebp - 0x14]
call fcn.00402fbc
inc dword [ebp - 4]
lea eax, [ebp - 0x13c]
push esi
push eax
push dword [ebp - 4]
push dword [ebp + 8]
call edi
jmp 0x40d61d
push dword [ebp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [ebp + 0xc]
push str.open
mov ecx, edi
call fcn.00403d99
mov esi, eax
test esi, esi
jle 0x40d774
push 0
push esi
mov ecx, edi
call fcn.00403e6f
mov ecx, dword [ebp + 0x10]
push 0
push esi
call fcn.00403e6f
xor ebx, ebx
lea ecx, [ebp - 0x30]
cmp dword [edi + 4], ebx
setg bl
call fcn.00402fbc
lea ecx, [ebp - 0x20]
call fcn.00402fbc
mov al, bl
pop edi
pop esi
pop ebx
leave
ret 0xc