Function at 0x4e861c
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd88
push ebx
mov dword [ebp - 0x30], eax
mov eax, 0x7d37fc
call fcn.0066ce04
mov edx, dword [0x7d201c]
test edx, edx
je 0x4e8928
push 0
lea ecx, [ebp - 0x48]
push ecx
lea eax, [ebp - 0x46]
push eax
lea edx, [ebp - 0x44]
push edx
lea ecx, [ebp - 0x42]
push ecx
call fcn.005ac86c
add esp, 0x14
movzx eax, word [ebp - 0x48]
push eax
movzx edx, word [ebp - 0x46]
push edx
movzx ecx, word [ebp - 0x44]
push ecx
movzx eax, word [ebp - 0x42]
push eax
push 0x5618
call fcn.00402a64
pop ecx
push eax
push 0x7d2333
lea edx, [ebp - 0x278]
push edx
call fcn.00670e94
add esp, 0x1c
lea edx, [ebp - 0x278]
or ecx, 0xffffffff
mov eax, dword [ebp - 0x30]
call fcn.004e83e4
mov dword [0x7d2088], 2
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x7f0]
test edx, edx
jne 0x4e86d6
push 0x5dc7
call fcn.00402a64
pop ecx
mov edx, eax
mov ecx, 2
mov eax, dword [ebp - 0x30]
call fcn.004e83e4
jmp 0x4e8914
mov dword [ebp - 0x4c], 0xffffffff
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x7f0]
mov ecx, dword [edx]
test ecx, ecx
jbe 0x4e88fa
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x300]
add edx, 0x23c
mov dword [ebp - 0x50], edx
mov ecx, dword [ebp - 0x50]
mov eax, dword [ecx]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x4e872b
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x300]
add eax, 0x23c
mov dword [ebp - 0x54], eax
mov edx, dword [ebp - 0x54]
mov eax, dword [edx]
mov edx, dword [eax]
call dword [edx + 0x44]
xor ecx, ecx
mov dword [ebp - 0x58], ecx
jmp 0x4e883a
imul eax, dword [ebp - 0x58], 0xd7
mov edx, dword [ebp - 0x30]
mov ecx, dword [edx + 0x7f0]
mov eax, dword [ecx + eax*8 + 0x54]
dec eax
jne 0x4e8837
push 5
push 0x7d234a
imul edx, dword [ebp - 0x58], 0x6b8
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x7f0]
add edx, eax
add edx, 4
push edx
call fcn.0066cc80
add esp, 0xc
test eax, eax
je 0x4e8837
imul edx, dword [ebp - 0x58], 0x6b8
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x7f0]
add edx, eax
add edx, 4
push edx
imul edx, dword [ebp - 0x58], 0xd7
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x7f0]
movsx edx, byte [eax + edx*8 + 0x58]
push edx
push 0x7d2350
lea ecx, [ebp - 0x278]
push ecx
call fcn.00670e94
add esp, 0x10
movsx eax, byte [ebp - 0x277]
cmp eax, 0x61
jl 0x4e87dc
movsx edx, byte [ebp - 0x277]
cmp edx, 0x7a
jg 0x4e87dc
add byte [ebp - 0x277], 0xe0
mov word [ebp - 0x1c], 8
lea edx, [ebp - 0x278]
lea eax, [ebp - 4]
call fcn.0067ceb4
inc dword [ebp - 0x10]
mov edx, dword [eax]
imul ecx, dword [ebp - 0x58], 0x6b8
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x7f0]
add ecx, eax
add ecx, 4
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x300]
mov ebx, dword [eax]
call dword [ebx + 0xd0]
dec dword [ebp - 0x10]
lea eax, [ebp - 4]
mov edx, 2
call fcn.0067d0a0
mov ecx, dword [ebp - 0x4c]
inc ecx
jne 0x4e8837
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x4c], eax
inc dword [ebp - 0x58]
mov edx, dword [ebp - 0x30]
mov ecx, dword [edx + 0x7f0]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x58]
cmp eax, edx
ja 0x4e8735
mov ecx, dword [ebp - 0x4c]
inc ecx
je 0x4e8914
mov eax, dword [0x6e7388]
test eax, eax
jl 0x4e8889
mov edx, dword [ebp - 0x30]
mov ecx, dword [edx + 0x300]
add ecx, 0x23c
mov dword [ebp - 0x5c], ecx
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ecx, dword [0x6e7388]
cmp eax, ecx
jg 0x4e8890
xor eax, eax
mov dword [0x6e7388], eax
mov edx, dword [0x6e7388]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x300]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov dword [0x7d2088], 3
imul edx, dword [ebp - 0x4c], 0x6b8
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0x7f0]
add edx, ecx
add edx, 4
push edx
push 0x426b
call fcn.00402a64
pop ecx
push eax
push 0x7d2358
lea edx, [ebp - 0x278]
push edx
call fcn.00670e94
add esp, 0x10
lea edx, [ebp - 0x278]
or ecx, 0xffffffff
mov eax, dword [ebp - 0x30]
call fcn.004e83e4
jmp 0x4e8914
push 0x5dc8
call fcn.00402a64
pop ecx
mov edx, eax
mov ecx, 2
mov eax, dword [ebp - 0x30]
call fcn.004e83e4
mov eax, 1
mov edx, dword [ebp - 0x2c]
mov dword fs:[0], edx
jmp 0x4e916b
push 0
call fcn.005ac42c
pop ecx
test eax, eax
jne 0x4e8945
xor eax, eax
mov edx, dword [ebp - 0x2c]
mov dword fs:[0], edx
jmp 0x4e916b
mov dword [0x7d2088], 1
xor ecx, ecx
mov dword [0x7d20a0], ecx
push 0
lea eax, [ebp - 0x48]
push eax
lea edx, [ebp - 0x46]
push edx
lea ecx, [ebp - 0x44]
push ecx
lea eax, [ebp - 0x42]
push eax
call fcn.005ac86c
add esp, 0x14
cmp word [ebp - 0x42], 6
ja 0x4e8994
cmp word [ebp - 0x42], 6
jne 0x4e899e
cmp word [ebp - 0x44], 6
ja 0x4e8994
cmp word [ebp - 0x44], 6
jne 0x4e899e
cmp word [ebp - 0x46], 1
jb 0x4e899e
mov dword [0x7d20a0], 1
push str.NeroFiles
mov edx, dword [ebp - 0x30]
add edx, 0x504
push edx
call fcn.0066c9ec
add esp, 8
lea ecx, [ebp - 0x34]
push ecx
push 0x7d2368
push SysStringLen
call sub.ADVAPI32.DLL_RegOpenKeyA
test eax, eax
jne 0x4e8a16
mov dword [ebp - 0x3c], 0x100
lea eax, [ebp - 0x3c]
push eax
lea edx, [ebp - 0x174]
push edx
lea ecx, [ebp - 0x38]
push ecx
push 0
push 0x7d237e
push dword [ebp - 0x34]
call sub.ADVAPI32.DLL_RegQueryValueExA
test eax, eax
jne 0x4e8a0e
lea eax, [ebp - 0x174]
push eax
mov edx, dword [ebp - 0x30]
add edx, 0x504
push edx
call fcn.0066c9ec
add esp, 8
push dword [ebp - 0x34]
call sub.ADVAPI32.DLL_RegCloseKey
push str.ahead
mov ecx, dword [ebp - 0x30]
add ecx, 0x484
push ecx
call fcn.0066c9ec
add esp, 8
push str.Nero___Burning_Rom
mov eax, dword [ebp - 0x30]
add eax, 0x404
push eax
call fcn.0066c9ec
add esp, 8
push str.Nero.txt
mov edx, dword [ebp - 0x30]
add edx, 0x384
push edx
call fcn.0066c9ec
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x40], ecx
mov eax, dword [0x6deedc]
cmp eax, 0x414
jg 0x4e8ace
je 0x4e8c2e
add eax, 0xfffffbfe
cmp eax, 0x11
ja case.0x4e8ae9.1047
jmp dword [eax*4 + 0x4e8a86]
cmp eax, 0x422
jg 0x4e8b1c
je 0x4e8c0a
add eax, 0xfffffbeb
cmp eax, 0xa
ja case.0x4e8ae9.1047
jmp dword [eax*4 + 0x4e8af0]
cmp eax, 0x804
jg 0x4e8b45
je 0x4e8b74
sub eax, 0x423
je case.0x4e8ae9.1047
dec eax
je 0x4e8c52
sub eax, 2
je case.0x4e8ae9.1047
jmp case.0x4e8ae9.1047
sub eax, 0x816
je 0x4e8bbc
sub eax, 0x1feb
je case.0x4e8ae9.1047
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Nerojpn.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Nerokor.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Nerochs.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Nerocht.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Nerodeu.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Nerofra.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Neroesp.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Neroita.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Neroptg.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Neroptb.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Neronld.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Nerosve.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Neroplk.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Nerocsy.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Nerohun.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Nerorus.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Neroukr.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Nerotrk.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Neroell.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Nerodan.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Neronor.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Nerofin.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Nerorom.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Nerosky.txt
jmp case.0x4e8ae9.1047
mov dword [ebp - 0x40], str.Neroslv.txt
mov edx, dword [ebp - 0x40]
test edx, edx
je 0x4e8cab
push dword [ebp - 0x40]
mov ecx, dword [ebp - 0x30]
add ecx, 0x504
push ecx
push 0x7d24d4
lea eax, [ebp - 0x278]
push eax
call fcn.00670e94
add esp, 0x10
push 0
lea edx, [ebp - 0x278]
push edx
call fcn.0066e7cc
add esp, 8
test eax, eax
jne 0x4e8cab
push dword [ebp - 0x40]
mov ecx, dword [ebp - 0x30]
add ecx, 0x384
push ecx
call fcn.0066c9ec
add esp, 8
push 0x28
push 0
mov eax, dword [ebp - 0x30]
add eax, 0x604
push eax
call fcn.0066c86c
add esp, 0xc
mov edx, dword [ebp - 0x30]
add edx, 0x504
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x604], edx
mov eax, dword [ebp - 0x30]
add eax, 0x484
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x608], eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x30]
mov dword [eax + 0x618], ecx
mov edx, 0x4e625b
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x614], edx
mov eax, dword [ebp - 0x30]
add eax, 0x404
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x60c], eax
mov ecx, 0x4e5e8c
mov eax, dword [ebp - 0x30]
mov dword [eax + 0x61c], ecx
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x620], edx
mov eax, dword [ebp - 0x30]
add eax, 0x384
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x610], eax
push 0x20
push 0
mov ecx, dword [ebp - 0x30]
add ecx, 0x7b0
push ecx
call fcn.0066c86c
add esp, 0xc
mov eax, dword [ebp - 0x30]
mov dword [eax + 0x7b4], 0x4e62bf
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x7b8], 0x4e62ce
mov ecx, dword [ebp - 0x30]
xor eax, eax
mov dword [ecx + 0x7c4], eax
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x7b0], 0x4e62a4
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x7bc], 0x4e6345
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x7c0], eax
mov ecx, dword [ebp - 0x30]
xor eax, eax
mov dword [ecx + 0x7c8], eax
mov edx, dword [ebp - 0x30]
xor ecx, ecx
mov dword [edx + 0x7cc], ecx
mov eax, dword [ebp - 0x30]
xor edx, edx
mov dword [eax + 0x7f0], edx
push 0
mov ecx, dword [ebp - 0x30]
add ecx, 0x604
push ecx
call fcn.005ac920
add esp, 8
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x60]
sub eax, 1
jb 0x4e8dea
je 0x4e8e55
sub eax, 2
je 0x4e8e71
jmp 0x4e8e8d
movzx edx, word [ebp - 0x48]
push edx
movzx ecx, word [ebp - 0x46]
push ecx
movzx eax, word [ebp - 0x44]
push eax
movzx edx, word [ebp - 0x42]
push edx
push 0x5618
call fcn.00402a64
pop ecx
push eax
push str.NeroAPI__s__d._d._d._d
lea ecx, [ebp - 0x278]
push ecx
call fcn.00670e94
add esp, 0x1c
lea edx, [ebp - 0x278]
or ecx, 0xffffffff
mov eax, dword [ebp - 0x30]
call fcn.004e83e4
push 0x5dc3
call fcn.00402a64
pop ecx
mov edx, eax
mov ecx, 1
mov eax, dword [ebp - 0x30]
call fcn.004e83e4
mov dword [0x7d2088], 2
jmp 0x4e8ea7
push 0x5dc4
call fcn.00402a64
pop ecx
mov edx, eax
mov ecx, 2
mov eax, dword [ebp - 0x30]
call fcn.004e83e4
jmp 0x4e8ea7
push 0x5dc5
call fcn.00402a64
pop ecx
mov edx, eax
mov ecx, 2
mov eax, dword [ebp - 0x30]
call fcn.004e83e4
jmp 0x4e8ea7
push 0x5dc6
call fcn.00402a64
pop ecx
mov edx, eax
mov ecx, 2
mov eax, dword [ebp - 0x30]
call fcn.004e83e4
mov eax, dword [0x7d2088]
cmp eax, 2
jne 0x4e914f
push 0
push 1
call fcn.005aca70
add esp, 8
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x7f0], eax
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x7f0]
test eax, eax
jne 0x4e8ef6
push 0x5dc7
call fcn.00402a64
pop ecx
mov edx, eax
mov ecx, 2
mov eax, dword [ebp - 0x30]
call fcn.004e83e4
jmp 0x4e9134
mov dword [ebp - 0x64], 0xffffffff
mov edx, dword [ebp - 0x30]
mov ecx, dword [edx + 0x7f0]
mov eax, dword [ecx]
test eax, eax
jbe 0x4e911a
mov edx, dword [ebp - 0x30]
mov ecx, dword [edx + 0x300]
add ecx, 0x23c
mov dword [ebp - 0x68], ecx
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x4e8f4b
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x300]
add eax, 0x23c
mov dword [ebp - 0x6c], eax
mov edx, dword [ebp - 0x6c]
mov eax, dword [edx]
mov edx, dword [eax]
call dword [edx + 0x44]
xor ecx, ecx
mov dword [ebp - 0x70], ecx
jmp 0x4e905a
imul eax, dword [ebp - 0x70], 0xd7
mov edx, dword [ebp - 0x30]
mov ecx, dword [edx + 0x7f0]
mov eax, dword [ecx + eax*8 + 0x54]
dec eax
jne 0x4e9057
push 5
push str.Image
imul edx, dword [ebp - 0x70], 0x6b8
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x7f0]
add edx, eax
add edx, 4
push edx
call fcn.0066cc80
add esp, 0xc
test eax, eax
je 0x4e9057
imul edx, dword [ebp - 0x70], 0x6b8
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x7f0]
add edx, eax
add edx, 4
push edx
imul edx, dword [ebp - 0x70], 0xd7
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x7f0]
movsx edx, byte [eax + edx*8 + 0x58]
push edx
push 0x7d24f7
lea ecx, [ebp - 0x278]
push ecx
call fcn.00670e94
add esp, 0x10
movsx eax, byte [ebp - 0x277]
cmp eax, 0x61
jl 0x4e8ffc
movsx edx, byte [ebp - 0x277]
cmp edx, 0x7a
jg 0x4e8ffc
add byte [ebp - 0x277], 0xe0
mov word [ebp - 0x1c], 0x14
lea edx, [ebp - 0x278]
lea eax, [ebp - 8]
call fcn.0067ceb4
inc dword [ebp - 0x10]
mov edx, dword [eax]
imul ecx, dword [ebp - 0x70], 0x6b8
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x7f0]
add ecx, eax
add ecx, 4
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0x300]
mov ebx, dword [eax]
call dword [ebx + 0xd0]
dec dword [ebp - 0x10]
lea eax, [ebp - 8]
mov edx, 2
call fcn.0067d0a0
mov ecx, dword [ebp - 0x64]
inc ecx
jne 0x4e9057
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x64], eax
inc dword [ebp - 0x70]
mov edx, dword [ebp - 0x30]
mov ecx, dword [edx + 0x7f0]
mov eax, dword [ecx]
mov edx, dword [ebp - 0x70]
cmp eax, edx
ja 0x4e8f55
mov ecx, dword [ebp - 0x64]
inc ecx
je 0x4e9134
mov eax, dword [0x6e7388]
test eax, eax
jl 0x4e90a9
mov edx, dword [ebp - 0x30]
mov ecx, dword [edx + 0x300]
add ecx, 0x23c
mov dword [ebp - 0x74], ecx
mov eax, dword [ebp - 0x74]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ecx, dword [0x6e7388]
cmp eax, ecx
jg 0x4e90b0
xor eax, eax
mov dword [0x6e7388], eax
mov edx, dword [0x6e7388]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x300]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov dword [0x7d2088], 3
imul edx, dword [ebp - 0x64], 0x6b8
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0x7f0]
add edx, ecx
add edx, 4
push edx
push 0x426b
call fcn.00402a64
pop ecx
push eax
push 0x7d24ff
lea edx, [ebp - 0x278]
push edx
call fcn.00670e94
add esp, 0x10
lea edx, [ebp - 0x278]
or ecx, 0xffffffff
mov eax, dword [ebp - 0x30]
call fcn.004e83e4
jmp 0x4e9134
push 0x5dc8
call fcn.00402a64
pop ecx
mov edx, eax
mov ecx, 2
mov eax, dword [ebp - 0x30]
call fcn.004e83e4
mov dword [0x7d201c], 1
mov eax, 1
mov edx, dword [ebp - 0x2c]
mov dword fs:[0], edx
jmp 0x4e916b
mov eax, dword [ebp - 0x30]
call fcn.004ebd6c
xor edx, edx
mov dword [0x7d201c], edx
xor eax, eax
mov edx, dword [ebp - 0x2c]
mov dword fs:[0], edx
pop ebx
mov esp, ebp
pop ebp
ret