Function at 0x403a40
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x7a0
mov eax, dword [esp + 0x7a4]
push ebx
push esi
push eax
push 0
push 0x410250
mov dword [0x4102c0], 0x40f828
mov dword [0x410310], 0x410250
mov dword [0x410250], 0x84
mov dword [0x4102b4], 0x300
call fcn.00403cf0
lea ecx, [esp + 0x14]
call fcn.00404410
lea ecx, [esp + 0x2d]
call fcn.00403e50
lea ecx, [esp + 0x64]
call fcn.00403e50
lea ecx, [esp + 0x9b]
call fcn.00403e50
lea ecx, [esp + 8]
mov dword [esp + 0x14], 0x40d260
push ecx
push 0x20019
push 0
push str.SoftwareEnlight_SoftwareMarine_Park_Empire
push SysStringLen
mov dword [esp + 0x20], 0x100
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
mov esi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea edx, [esp + 0xc]
lea eax, [esp + 0x1d4]
push edx
mov edx, dword [esp + 0xc]
lea ecx, [esp + 0x14]
push eax
push ecx
push 0
push str.Path
push edx
call esi
lea eax, [esp + 0xc]
lea ecx, [esp + 0xd4]
push eax
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x14]
push ecx
push edx
push 0
push str.Version
push eax
call esi
mov ecx, dword [esp + 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, str.1.00
lea eax, [esp + 0xd4]
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x403b5c
test cl, cl
je 0x403b58
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x403b5c
add eax, 2
add esi, 2
test cl, cl
jne 0x403b34
xor eax, eax
jmp 0x403b61
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x403bf0
push 0x40f838
lea eax, [esp + 0x2d8]
push 0x40f0a4
push eax
call fcn.0040698a
add esp, 0xc
lea ecx, [esp + 0x2d4]
push 0
push 0x4101a8
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0xc4]
mov dword [esp + 0x14], 0x40d260
mov dword [esp + 0x9b], 0x40d254
call fcn.004046e0
lea ecx, [esp + 0xc0]
call fcn.004046e0
lea ecx, [esp + 0xbc]
call fcn.004046e0
lea ecx, [esp + 0x64]
call fcn.00403e80
lea ecx, [esp + 0x2d]
call fcn.00403e80
pop esi
xor eax, eax
pop ebx
add esp, 0x7a0
ret 0x10
call dword [sym.imp.USER32.dll_GetActiveWindow]
lea edx, [esp + 0x14]
mov esi, eax
mov dword [esp + 0x1c], edx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0x410284
mov dword [esp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x4102b8]
lea ecx, [esp + 0x1c]
push 0x410284
mov dword [esp + 0x28], eax
mov dword [0x4102b8], ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, dword [0x410258]
push 0
push 0x402b20
push esi
push 0xb3
push edx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push 0x410250
call fcn.00403d80
mov esi, 0x40d254
mov dword [esp + 0x14], 0x40d260
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x9b], esi
test eax, eax
je 0x403c82
lea ecx, [esp + 0xc4]
call fcn.00402b00
lea ecx, [esp + 0xc0]
call fcn.004046e0
lea ecx, [esp + 0xbc]
call fcn.004046e0
lea ecx, [esp + 0x8d]
mov dword [esp + 0x64], esi
call fcn.004046e0
lea ecx, [esp + 0x89]
call fcn.004046e0
lea ecx, [esp + 0x85]
call fcn.004046e0
lea ecx, [esp + 0x56]
mov dword [esp + 0x2d], esi
call fcn.004046e0
lea ecx, [esp + 0x52]
call fcn.004046e0
lea ecx, [esp + 0x4e]
call fcn.004046e0
pop esi
xor eax, eax
pop ebx
add esp, 0x7a0
ret 0x10