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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x477200
mov eax, dword fs:[0]
push eax
mov eax, 0x1034c
call fcn.0042aab0
mov eax, dword [0x495094]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x1032c], ebx
mov dword [ebp - 0x10324], ebx
mov dword [ebp - 0x10348], 0
mov dword [ebp - 0x1034c], ebx
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov dword [ebp - 4], 0
lea eax, [ebp - 0x1033c]
mov byte [ebp - 0x10324], 0
lea ecx, [ebp - 0x1033c]
push dword [ebp - 0x10324]
mov dword [ebp - 0x10348], 1
push eax
lea eax, [ebp - 0x10344]
mov dword [ebp - 0x10320], 0xff
push eax
mov dword [ebp - 0x10318], 0x7fff
mov dword [ebp - 0x10344], 0x80000001
mov dword [ebp - 0x10340], 0x80000002
mov dword [ebp - 0x1033c], 0
mov dword [ebp - 0x10338], 0
mov dword [ebp - 0x10334], 0
call fcn.0040d8f0
lea ecx, [ebp - 0x10314]
mov dword [ebp - 4], 1
call fcn.0040bd40
mov byte [ebp - 4], 2
mov edi, dword [ebp - 0x1033c]
mov esi, edi
cmp edi, dword [ebp - 0x10338]
je 0x467286
nop dword [eax + eax]
lea eax, [ebp - 0x10330]
push eax
push 0x20219
push 0
push str.SOFTWAREMozillaPlugins
push dword [esi]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x467265
xor edi, edi
mov dword [ebp - 0x10320], 0xff
nop
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x10320]
push eax
lea eax, [ebp - 0x210]
push eax
push edi
push dword [ebp - 0x10330]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
inc edi
mov dword [ebp - 0x10328], edi
test eax, eax
je 0x466b49
cmp eax, 0x103
je 0x467265
lea eax, [ebp - 0x1031c]
mov dword [ebp - 0x10320], 0xff
push eax
push 0x20019
push 0
lea eax, [ebp - 0x210]
push eax
push dword [ebp - 0x10330]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x466b10
lea ecx, [ebp - 0x102c4]
call fcn.0040bab0
lea eax, [ebp - 0x210]
mov byte [ebp - 4], 3
push eax
lea eax, [ebp - 0x10228]
push eax
lea ecx, [ebp - 0x10314]
call fcn.0040bc00
mov edi, eax
lea eax, [ebp - 0x102c4]
mov byte [ebp - 4], 4
cmp eax, edi
je 0x466c75
mov eax, dword [ebp - 0x102b0]
cmp eax, 0x10
jb 0x466c00
mov ecx, dword [ebp - 0x102c4]
inc eax
cmp eax, 0x1000
jb 0x466bf7
test cl, 0x1f
jne 0x4672c5
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x4672c5
sub ecx, eax
cmp ecx, 4
jb 0x4672c5
cmp ecx, 0x23
ja 0x4672c5
mov ecx, eax
push ecx
call fcn.0042a190
add esp, 4
mov dword [ebp - 0x102b0], 0xf
mov dword [ebp - 0x102b4], 0
mov byte [ebp - 0x102c4], 0
cmp dword [edi + 0x14], 0x10
jae 0x466c3c
mov eax, dword [edi + 0x10]
add eax, 1
je 0x466c4a
push eax
lea eax, [ebp - 0x102c4]
push edi
push eax
call fcn.00441300
add esp, 0xc
jmp 0x466c4a
mov eax, dword [edi]
mov dword [ebp - 0x102c4], eax
mov dword [edi], 0
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x102b4], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x102b0], eax
mov dword [edi + 0x14], 0xf
cmp dword [edi + 0x14], 0x10
mov dword [edi + 0x10], 0
jb 0x466c72
mov edi, dword [edi]
mov byte [edi], 0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x10214]
cmp eax, 0x10
jb 0x466cc5
mov ecx, dword [ebp - 0x10228]
inc eax
cmp eax, 0x1000
jb 0x466cbc
test cl, 0x1f
jne 0x4672c5
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x4672c5
sub ecx, eax
cmp ecx, 4
jb 0x4672c5
cmp ecx, 0x23
ja 0x4672c5
mov ecx, eax
push ecx
call fcn.0042a190
add esp, 4
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0x10318]
push eax
lea eax, [ebp - 0x10210]
push eax
push 0
push 0
push str.FireWyrm
push dword [ebp - 0x1031c]
call edi
test eax, eax
jne 0x4671c6
lea eax, [ebp - 0x10210]
push eax
lea eax, [ebp - 0x10228]
push eax
lea ecx, [ebp - 0x10314]
call fcn.0040bc00
mov ebx, dword [ebp - 0x10218]
mov ecx, dword [ebp - 0x10228]
test ebx, ebx
je 0x4671e0
mov eax, dword [ebp - 0x10214]
lea edi, [ebp - 0x10228]
cmp eax, 0x10
mov edx, 4
cmovae edi, ecx
cmp ebx, edx
cmovb edx, ebx
test edx, edx
je 0x466db0
mov ebx, str.true
sub edx, 4
jb 0x466d61
nop dword [eax]
mov eax, dword [edi]
cmp eax, dword [ebx]
jne 0x466d66
add edi, 4
add ebx, 4
sub edx, 4
jae 0x466d50
cmp edx, 0xfffffffc
je 0x466d9a
mov al, byte [edi]
cmp al, byte [ebx]
jne 0x466d93
cmp edx, 0xfffffffd
je 0x466d9a
mov al, byte [edi + 1]
cmp al, byte [ebx + 1]
jne 0x466d93
cmp edx, 0xfffffffe
je 0x466d9a
mov al, byte [edi + 2]
cmp al, byte [ebx + 2]
jne 0x466d93
cmp edx, 0xffffffff
je 0x466d9a
mov al, byte [edi + 3]
cmp al, byte [ebx + 3]
je 0x466d9a
sbb eax, eax
or eax, 1
jmp 0x466d9c
xor eax, eax
test eax, eax
jne 0x4671e0
mov eax, dword [ebp - 0x10214]
mov ebx, dword [ebp - 0x10218]
cmp ebx, 4
jb 0x4671e0
ja 0x4671e0
cmp eax, 0x10
jb 0x466e03
inc eax
cmp eax, 0x1000
jb 0x466dfa
test byte [ebp - 0x10228], 0x1f
jne 0x4672c5
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x4672c5
sub ecx, eax
cmp ecx, 4
jb 0x4672c5
cmp ecx, 0x23
ja 0x4672c5
mov ecx, eax
push ecx
call fcn.0042a190
add esp, 4
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0x10318]
push eax
lea eax, [ebp - 0x10210]
push eax
push 0
push 0
push str.Description
push dword [ebp - 0x1031c]
call edi
test eax, eax
jne 0x466ec2
lea eax, [ebp - 0x10210]
push eax
lea eax, [ebp - 0x10228]
push eax
lea ecx, [ebp - 0x10314]
call fcn.0040bc00
mov edi, eax
lea eax, [ebp - 0x102ac]
cmp eax, edi
je 0x466e9a
mov eax, dword [ebp - 0x10298]
cmp eax, 0x10
jb 0x466e73
inc eax
lea ecx, [ebp - 0x102ac]
push eax
push dword [ebp - 0x102ac]
call fcn.004018b0
push edi
lea ecx, [ebp - 0x102ac]
mov dword [ebp - 0x10298], 0xf
mov dword [ebp - 0x1029c], 0
mov byte [ebp - 0x102ac], 0
call fcn.00403bb0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x10214]
cmp eax, 0x10
jb 0x466ebc
inc eax
lea ecx, [ebp - 0x10228]
push eax
push dword [ebp - 0x10228]
call fcn.004018b0
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea eax, [ebp - 0x10318]
mov dword [ebp - 0x10318], 0x7fff
push eax
lea eax, [ebp - 0x10210]
push eax
push 0
push 0
push str.Path
push dword [ebp - 0x1031c]
call edi
test eax, eax
jne 0x466f32
lea eax, [ebp - 0x10210]
push eax
lea eax, [ebp - 0x10228]
push eax
lea ecx, [ebp - 0x10314]
call fcn.0040bc00
push eax
lea ecx, [ebp - 0x10294]
call fcn.004032d0
mov eax, dword [ebp - 0x10214]
cmp eax, 0x10
jb 0x466f32
inc eax
lea ecx, [ebp - 0x10228]
push eax
push dword [ebp - 0x10228]
call fcn.004018b0
lea eax, [ebp - 0x10210]
push eax
lea ecx, [ebp - 0x10228]
call fcn.0040b800
push 0
lea eax, [ebp - 0x10228]
mov byte [ebp - 4], 6
push eax
lea eax, [ebp - 0x10358]
push eax
call fcn.004114b0
mov eax, dword [ebp - 0x10358]
add esp, 0xc
test eax, eax
je 0x466f73
cmp eax, 1
je 0x466f73
mov bl, 1
jmp 0x466f75
xor bl, bl
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x10214]
cmp eax, 8
jb 0x466f97
inc eax
lea ecx, [ebp - 0x10228]
push eax
push dword [ebp - 0x10228]
call fcn.0040d0a0
test bl, bl
je 0x467245
lea eax, [ebp - 0x10318]
mov dword [ebp - 0x10318], 0x7fff
push eax
lea eax, [ebp - 0x10210]
push eax
push 0
push 0
push str.ProductName
push dword [ebp - 0x1031c]
call edi
test eax, eax
jne 0x466ffc
lea eax, [ebp - 0x10210]
push eax
lea eax, [ebp - 0x10228]
push eax
lea ecx, [ebp - 0x10314]
call fcn.0040bc00
push eax
lea ecx, [ebp - 0x1027c]
call fcn.004032d0
lea ecx, [ebp - 0x10228]
call fcn.00401500
lea eax, [ebp - 0x10318]
mov dword [ebp - 0x10318], 0x7fff
push eax
lea eax, [ebp - 0x10210]
push eax
push 0
push 0
push str.Vendor
push dword [ebp - 0x1031c]
call edi
test eax, eax
jne 0x467059
lea eax, [ebp - 0x10210]
push eax
lea eax, [ebp - 0x10228]
push eax
lea ecx, [ebp - 0x10314]
call fcn.0040bc00
push eax
lea ecx, [ebp - 0x10264]
call fcn.004032d0
lea ecx, [ebp - 0x10228]
call fcn.00401500
lea eax, [ebp - 0x10318]
mov dword [ebp - 0x10318], 0x7fff
push eax
lea eax, [ebp - 0x10210]
push eax
push 0
push 0
push str.Version
push dword [ebp - 0x1031c]
call edi
test eax, eax
jne 0x4670b6
lea eax, [ebp - 0x10210]
push eax
lea eax, [ebp - 0x10228]
push eax
lea ecx, [ebp - 0x10314]
call fcn.0040bc00
push eax
lea ecx, [ebp - 0x1024c]
call fcn.004032d0
lea ecx, [ebp - 0x10228]
call fcn.00401500
lea eax, [ebp - 0x10324]
push eax
push 0x20019
push 0
push str.MimeTypes
push dword [ebp - 0x1031c]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x46717a
mov ebx, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
xor edi, edi
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x10320]
mov dword [ebp - 0x10320], 0xff
push eax
lea eax, [ebp - 0x210]
push eax
push edi
push dword [ebp - 0x10324]
call ebx
inc edi
test eax, eax
je 0x46711e
cmp eax, 0x103
je 0x46716e
test eax, eax
jne 0x4670e5
lea eax, [ebp - 0x210]
push eax
lea eax, [ebp - 0x10228]
push eax
lea ecx, [ebp - 0x10314]
call fcn.0040bc00
push eax
lea ecx, [ebp - 0x10234]
mov byte [ebp - 4], 7
call fcn.0040c240
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x10214]
cmp eax, 0x10
jb 0x4670e5
inc eax
lea ecx, [ebp - 0x10228]
push eax
push dword [ebp - 0x10228]
call fcn.004018b0
jmp 0x4670e5
push dword [ebp - 0x10324]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 0x1031c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ebx, dword [ebp - 0x1032c]
mov eax, dword [ebx + 4]
cmp eax, dword [ebx + 8]
jne 0x46719c
push ecx
mov ecx, ebx
call fcn.0040d740
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x10350], ecx
mov dword [ebp - 0x10340], ecx
mov byte [ebp - 4], 8
test ecx, ecx
je 0x4671bf
lea eax, [ebp - 0x102c4]
push eax
call fcn.0040da30
add dword [ebx + 4], 0x9c
lea ecx, [ebp - 0x102c4]
mov byte [ebp - 4], 2
call fcn.00406aa0
mov edi, dword [ebp - 0x10328]
jmp 0x466b10
mov eax, dword [ebp - 0x10214]
cmp eax, 0x10
jb 0x46722a
inc eax
cmp eax, 0x1000
jb 0x467221
test byte [ebp - 0x10228], 0x1f
jne 0x4672c5
mov eax, dword [ecx - 4]
cmp eax, ecx
jae 0x4672c5
sub ecx, eax
cmp ecx, 4
jb 0x4672c5
cmp ecx, 0x23
ja 0x4672c5
mov ecx, eax
push ecx
call fcn.0042a190
add esp, 4
mov dword [ebp - 0x10214], 0xf
mov dword [ebp - 0x10218], 0
mov byte [ebp - 0x10228], 0
lea ecx, [ebp - 0x102c4]
mov byte [ebp - 4], 2
call fcn.00406aa0
mov ebx, dword [ebp - 0x1032c]
mov edi, dword [ebp - 0x10328]
jmp 0x466b10
push dword [ebp - 0x10330]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
add esi, 4
cmp esi, dword [ebp - 0x10338]
jne 0x466ae0
mov edi, dword [ebp - 0x1033c]
lea ecx, [ebp - 0x10314]
call fcn.0040bc80
test edi, edi
je 0x4672a7
mov ecx, dword [ebp - 0x10334]
sub ecx, edi
sar ecx, 2
push ecx
push edi
call fcn.00403e70
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0042a14c
mov esp, ebp
pop ebp
ret
call fcn.00445fcb
int3