Function at 0x4e8a38
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd88
push ebx
mov dword [ebp - 0x30], eax
mov eax, 0x7e11d0
call fcn.0066d220
mov edx, dword [0x7df9f0]
test edx, edx
je 0x4e8d44
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.005acc88
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.00402b9c
pop ecx
push eax
push 0x7dfd07
lea edx, [ebp - 0x278]
push edx
call fcn.006712b0
add esp, 0x1c
lea edx, [ebp - 0x278]
or ecx, 0xffffffff
mov eax, dword [ebp - 0x30]
call fcn.004e8800
mov dword [0x7dfa5c], 2
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x7f0]
test edx, edx
jne 0x4e8af2
push 0x5dc7
call fcn.00402b9c
pop ecx
mov edx, eax
mov ecx, 2
mov eax, dword [ebp - 0x30]
call fcn.004e8800
jmp 0x4e8d30
mov dword [ebp - 0x4c], 0xffffffff
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x7f0]
mov ecx, dword [edx]
test ecx, ecx
jbe 0x4e8d16
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 0x4e8b47
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 0x4e8c56
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 0x4e8c53
push 5
push 0x7dfd1e
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.0066d09c
add esp, 0xc
test eax, eax
je 0x4e8c53
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 0x7dfd24
lea ecx, [ebp - 0x278]
push ecx
call fcn.006712b0
add esp, 0x10
movsx eax, byte [ebp - 0x277]
cmp eax, 0x61
jl 0x4e8bf8
movsx edx, byte [ebp - 0x277]
cmp edx, 0x7a
jg 0x4e8bf8
add byte [ebp - 0x277], 0xe0
mov word [ebp - 0x1c], 8
lea edx, [ebp - 0x278]
lea eax, [ebp - 4]
call fcn.0067d2d0
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.0067d4bc
mov ecx, dword [ebp - 0x4c]
inc ecx
jne 0x4e8c53
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 0x4e8b51
mov ecx, dword [ebp - 0x4c]
inc ecx
je 0x4e8d30
mov eax, dword [0x6ebc50]
test eax, eax
jl 0x4e8ca5
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 [0x6ebc50]
cmp eax, ecx
jg 0x4e8cac
xor eax, eax
mov dword [0x6ebc50], eax
mov edx, dword [0x6ebc50]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x300]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov dword [0x7dfa5c], 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.00402b9c
pop ecx
push eax
push 0x7dfd2c
lea edx, [ebp - 0x278]
push edx
call fcn.006712b0
add esp, 0x10
lea edx, [ebp - 0x278]
or ecx, 0xffffffff
mov eax, dword [ebp - 0x30]
call fcn.004e8800
jmp 0x4e8d30
push 0x5dc8
call fcn.00402b9c
pop ecx
mov edx, eax
mov ecx, 2
mov eax, dword [ebp - 0x30]
call fcn.004e8800
mov eax, 1
mov edx, dword [ebp - 0x2c]
mov dword fs:[0], edx
jmp 0x4e9587
push 0
call fcn.005ac848
pop ecx
test eax, eax
jne 0x4e8d61
xor eax, eax
mov edx, dword [ebp - 0x2c]
mov dword fs:[0], edx
jmp 0x4e9587
mov dword [0x7dfa5c], 1
xor ecx, ecx
mov dword [0x7dfa74], 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.005acc88
add esp, 0x14
cmp word [ebp - 0x42], 6
ja 0x4e8db0
cmp word [ebp - 0x42], 6
jne 0x4e8dba
cmp word [ebp - 0x44], 6
ja 0x4e8db0
cmp word [ebp - 0x44], 6
jne 0x4e8dba
cmp word [ebp - 0x46], 1
jb 0x4e8dba
mov dword [0x7dfa74], 1
push str.NeroFiles
mov edx, dword [ebp - 0x30]
add edx, 0x504
push edx
call fcn.0066ce08
add esp, 8
lea ecx, [ebp - 0x34]
push ecx
push 0x7dfd3c
push SysStringLen
call sub.ADVAPI32.DLL_RegOpenKeyA
test eax, eax
jne 0x4e8e32
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 0x7dfd52
push dword [ebp - 0x34]
call sub.ADVAPI32.DLL_RegQueryValueExA
test eax, eax
jne 0x4e8e2a
lea eax, [ebp - 0x174]
push eax
mov edx, dword [ebp - 0x30]
add edx, 0x504
push edx
call fcn.0066ce08
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.0066ce08
add esp, 8
push str.Nero___Burning_Rom
mov eax, dword [ebp - 0x30]
add eax, 0x404
push eax
call fcn.0066ce08
add esp, 8
push str.Nero.txt
mov edx, dword [ebp - 0x30]
add edx, 0x384
push edx
call fcn.0066ce08
add esp, 8
xor ecx, ecx
mov dword [ebp - 0x40], ecx
mov eax, dword [0x6e379c]
cmp eax, 0x414
jg 0x4e8eea
je 0x4e904a
add eax, 0xfffffbfe
cmp eax, 0x11
ja case.0x4e8f05.1047
jmp dword [eax*4 + 0x4e8ea2]
cmp eax, 0x422
jg 0x4e8f38
je 0x4e9026
add eax, 0xfffffbeb
cmp eax, 0xa
ja case.0x4e8f05.1047
jmp dword [eax*4 + 0x4e8f0c]
cmp eax, 0x804
jg 0x4e8f61
je 0x4e8f90
sub eax, 0x423
je case.0x4e8f05.1047
dec eax
je 0x4e906e
sub eax, 2
je case.0x4e8f05.1047
jmp case.0x4e8f05.1047
sub eax, 0x816
je 0x4e8fd8
sub eax, 0x1feb
je case.0x4e8f05.1047
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Nerojpn.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Nerokor.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Nerochs.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Nerocht.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Nerodeu.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Nerofra.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Neroesp.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Neroita.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Neroptg.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Neroptb.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Neronld.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Nerosve.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Neroplk.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Nerocsy.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Nerohun.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Nerorus.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Neroukr.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Nerotrk.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Neroell.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Nerodan.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Neronor.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Nerofin.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Nerorom.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Nerosky.txt
jmp case.0x4e8f05.1047
mov dword [ebp - 0x40], str.Neroslv.txt
mov edx, dword [ebp - 0x40]
test edx, edx
je 0x4e90c7
push dword [ebp - 0x40]
mov ecx, dword [ebp - 0x30]
add ecx, 0x504
push ecx
push 0x7dfea8
lea eax, [ebp - 0x278]
push eax
call fcn.006712b0
add esp, 0x10
push 0
lea edx, [ebp - 0x278]
push edx
call fcn.0066ebe8
add esp, 8
test eax, eax
jne 0x4e90c7
push dword [ebp - 0x40]
mov ecx, dword [ebp - 0x30]
add ecx, 0x384
push ecx
call fcn.0066ce08
add esp, 8
push 0x28
push 0
mov eax, dword [ebp - 0x30]
add eax, 0x604
push eax
call fcn.0066cc88
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, 0x4e6677
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, 0x4e62a8
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.0066cc88
add esp, 0xc
mov eax, dword [ebp - 0x30]
mov dword [eax + 0x7b4], 0x4e66db
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x7b8], 0x4e66ea
mov ecx, dword [ebp - 0x30]
xor eax, eax
mov dword [ecx + 0x7c4], eax
mov edx, dword [ebp - 0x30]
mov dword [edx + 0x7b0], 0x4e66c0
mov ecx, dword [ebp - 0x30]
mov dword [ecx + 0x7bc], 0x4e6761
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.005acd3c
add esp, 8
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x60]
sub eax, 1
jb 0x4e9206
je 0x4e9271
sub eax, 2
je 0x4e928d
jmp 0x4e92a9
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.00402b9c
pop ecx
push eax
push str.NeroAPI__s__d._d._d._d
lea ecx, [ebp - 0x278]
push ecx
call fcn.006712b0
add esp, 0x1c
lea edx, [ebp - 0x278]
or ecx, 0xffffffff
mov eax, dword [ebp - 0x30]
call fcn.004e8800
push 0x5dc3
call fcn.00402b9c
pop ecx
mov edx, eax
mov ecx, 1
mov eax, dword [ebp - 0x30]
call fcn.004e8800
mov dword [0x7dfa5c], 2
jmp 0x4e92c3
push 0x5dc4
call fcn.00402b9c
pop ecx
mov edx, eax
mov ecx, 2
mov eax, dword [ebp - 0x30]
call fcn.004e8800
jmp 0x4e92c3
push 0x5dc5
call fcn.00402b9c
pop ecx
mov edx, eax
mov ecx, 2
mov eax, dword [ebp - 0x30]
call fcn.004e8800
jmp 0x4e92c3
push 0x5dc6
call fcn.00402b9c
pop ecx
mov edx, eax
mov ecx, 2
mov eax, dword [ebp - 0x30]
call fcn.004e8800
mov eax, dword [0x7dfa5c]
cmp eax, 2
jne 0x4e956b
push 0
push 1
call fcn.005ace8c
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 0x4e9312
push 0x5dc7
call fcn.00402b9c
pop ecx
mov edx, eax
mov ecx, 2
mov eax, dword [ebp - 0x30]
call fcn.004e8800
jmp 0x4e9550
mov dword [ebp - 0x64], 0xffffffff
mov edx, dword [ebp - 0x30]
mov ecx, dword [edx + 0x7f0]
mov eax, dword [ecx]
test eax, eax
jbe 0x4e9536
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 0x4e9367
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 0x4e9476
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 0x4e9473
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.0066d09c
add esp, 0xc
test eax, eax
je 0x4e9473
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 0x7dfecb
lea ecx, [ebp - 0x278]
push ecx
call fcn.006712b0
add esp, 0x10
movsx eax, byte [ebp - 0x277]
cmp eax, 0x61
jl 0x4e9418
movsx edx, byte [ebp - 0x277]
cmp edx, 0x7a
jg 0x4e9418
add byte [ebp - 0x277], 0xe0
mov word [ebp - 0x1c], 0x14
lea edx, [ebp - 0x278]
lea eax, [ebp - 8]
call fcn.0067d2d0
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.0067d4bc
mov ecx, dword [ebp - 0x64]
inc ecx
jne 0x4e9473
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 0x4e9371
mov ecx, dword [ebp - 0x64]
inc ecx
je 0x4e9550
mov eax, dword [0x6ebc50]
test eax, eax
jl 0x4e94c5
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 [0x6ebc50]
cmp eax, ecx
jg 0x4e94cc
xor eax, eax
mov dword [0x6ebc50], eax
mov edx, dword [0x6ebc50]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ecx + 0x300]
mov ecx, dword [eax]
call dword [ecx + 0xcc]
mov dword [0x7dfa5c], 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.00402b9c
pop ecx
push eax
push 0x7dfed3
lea edx, [ebp - 0x278]
push edx
call fcn.006712b0
add esp, 0x10
lea edx, [ebp - 0x278]
or ecx, 0xffffffff
mov eax, dword [ebp - 0x30]
call fcn.004e8800
jmp 0x4e9550
push 0x5dc8
call fcn.00402b9c
pop ecx
mov edx, eax
mov ecx, 2
mov eax, dword [ebp - 0x30]
call fcn.004e8800
mov dword [0x7df9f0], 1
mov eax, 1
mov edx, dword [ebp - 0x2c]
mov dword fs:[0], edx
jmp 0x4e9587
mov eax, dword [ebp - 0x30]
call fcn.004ec188
xor edx, edx
mov dword [0x7df9f0], edx
xor eax, eax
mov edx, dword [ebp - 0x2c]
mov dword fs:[0], edx
pop ebx
mov esp, ebp
pop ebp
ret