Function at 0x407540
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x214
mov eax, dword [0x427138]
xor eax, esp
mov dword [esp + 0x210], eax
push ebp
push esi
mov ecx, edi
call fcn.004071d0
mov ebp, eax
xor eax, eax
push 0x206
push eax
lea ecx, [esp + 0x1a]
push ecx
mov word [esp + 0x1c], ax
call fcn.0040e740
mov eax, 0x423dc8
add esp, 0xc
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x407581
sub eax, edx
sar eax, 1
push eax
mov eax, 0x423dc8
mov esi, 0x429e40
call fcn.00404620
test ebp, ebp
jg 0x40760f
mov eax, 0x423ff8
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4075b0
sub eax, edx
sar eax, 1
push eax
mov eax, 0x423ff8
mov esi, 0x429e5c
call fcn.00404620
mov eax, 0x423ff8
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4075d7
sub eax, edx
sar eax, 1
push eax
mov eax, 0x423ff8
mov esi, 0x429e78
call fcn.00404620
pop esi
mov eax, ebp
pop ebp
mov ecx, dword [esp + 0x210]
xor ecx, esp
call fcn.00409a6d
add esp, 0x214
ret
push ebx
push 0
push 0x3e8
push edi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
mov esi, dword [sym.imp.USER32.dll_SetDlgItemTextW]
push 0x424014
push 0x3e8
push edi
call esi
cmp ebp, 3
jne 0x4076d0
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x429b88
push 0x429778
call ebx
push 0x429b88
push 0x429980
call ebx
mov eax, str._Debugging_
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x407667
sub eax, edx
sar eax, 1
push eax
mov eax, str._Debugging_
mov esi, 0x429e5c
call fcn.00404620
cmp word [0x429980], 0
mov eax, 0x429980
jne 0x40769a
mov eax, str._unsetting_
mov ecx, eax
lea esi, [ecx + 2]
nop
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x4076a0
sub ecx, esi
sar ecx, 1
push ecx
mov esi, 0x429e78
call fcn.00404620
push str.Debug
push 0x3ec
push edi
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
jmp 0x4077bf
cmp ebp, 4
jne 0x407716
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x429b88
push 0x429778
call ebx
push 0x429b88
push 0x429980
call ebx
push str._demo_
mov ecx, 0x429e10
call fcn.00406d20
push 0x429980
mov ecx, 0x429e10
call fcn.00406d60
jmp 0x4077b2
lea edx, [esp + 0xc]
push edx
push 0x20019
push 0
push str.SoftwareBishop_
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyW]
test eax, eax
je 0x407802
cmp ebp, 2
jne 0x407771
push str.SoftwareBishop_
push edi
xor edx, edx
mov ecx, eax
call fcn.00406de0
add esp, 8
pop ebx
pop esi
xor eax, eax
pop ebp
mov ecx, dword [esp + 0x210]
xor ecx, esp
call fcn.00409a6d
add esp, 0x214
ret
push 0x429b88
push 0x429778
call ebx
push 0x429b88
push 0x429980
call ebx
push str._Failed_open_registry_
mov ecx, 0x429e10
call fcn.00406d20
push 0x429980
mov ecx, 0x429e10
call fcn.00406d60
mov ecx, dword [esp + 0xc]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push str._C__BISHOP_all_rights_reserved.
push 0x3ec
push edi
call esi
push 1
push 0x3e8
push edi
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
push 0x429980
lea edx, [esp + 0x18]
push edx
call ebx
push str.bsxx.ini
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea ecx, [esp + 0x14]
push ecx
call fcn.00402330
test al, al
je 0x407878
mov al, 1
jmp 0x40787d
mov ecx, dword [esp + 0xc]
mov ebp, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [esp + 0x10]
push eax
push 0x429778
push 0
push 0
push str.InstallPath
push ecx
mov dword [esp + 0x28], 0x104
call ebp
mov ecx, 0x429e10
test eax, eax
je 0x40783a
push 0x42410c
jmp 0x40783f
push 0x429778
call fcn.00406d20
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x10]
push edx
push 0x429980
push 0
push 0
push str.DataPath
push eax
mov dword [esp + 0x28], 0x104
call ebp
test eax, eax
je 0x407798
push 0x42412c
jmp 0x40779d
call fcn.00406780
mov ecx, dword [esp + 0x21c]
xor edx, edx
test al, al
sete dl
pop ebx
pop esi
pop ebp
xor ecx, esp
add edx, 5
mov eax, edx
call fcn.00409a6d
add esp, 0x214
ret