Function at 0x40aca0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x439aba
mov eax, dword fs:[0]
push eax
sub esp, 0x17c
mov eax, dword [0x449570]
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 - 0x180], ebx
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
xor ecx, ecx
mov dword [ebp - 0x184], edx
mov word [ebx + 0x96], 0
mov dword [ebp - 0x54], 7
mov dword [ebp - 0x58], 0
mov word [ebp - 0x68], cx
mov dword [ebp - 4], ecx
cmp byte [ebp + 0x10], cl
je 0x40ad2a
lea ecx, [ebp - 0x68]
cmp ecx, eax
je 0x40ad1b
push 0xffffffffffffffff
push 0
push eax
call fcn.00403ba0
push 0x11
push str.MozillaFirefox_
lea ecx, [ebp - 0x68]
call fcn.00411b00
push 0xffffffffffffffff
push 0
push esi
lea ecx, [ebp - 0x68]
call fcn.004119f0
push str.extensions.json
lea edx, [ebp - 0x68]
lea ecx, [ebp - 0xc0]
call fcn.00413560
add esp, 4
mov dword [ebp - 0x6c], 0xf
mov dword [ebp - 0x70], 0
mov byte [ebp - 0x80], 0
lea edx, [ebp - 0x80]
lea ecx, [ebp - 0xc0]
mov byte [ebp - 4], 2
call fcn.00406280
test al, al
je 0x40b053
push 0x70
call fcn.0041e5ff
add esp, 4
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 3
test eax, eax
je 0x40adca
mov ecx, eax
mov dword [eax + 4], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x40], 0
mov dword [eax + 0x44], 0
mov dword [eax + 0x48], 0
mov dword [eax + 0x4c], 0
mov dword [eax + 0x50], 0
call fcn.00418340
mov esi, eax
jmp 0x40adcc
xor esi, esi
mov byte [ebp - 4], 2
push 0
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x84], 0
call fcn.00418630
push 0
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x80]
push eax
mov ecx, esi
mov byte [ebp - 4], 4
call fcn.0041b700
test al, al
je 0x40b044
push str.addons
lea ecx, [ebp - 0x90]
mov dword [ebp - 0x34], 0
call fcn.00418ae0
push eax
lea ecx, [ebp - 0x40]
call fcn.00418450
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 5
call fcn.0041b660
test al, al
je 0x40b038
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x18], 0
call fcn.004199f0
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x40]
call fcn.0041aa40
push eax
lea ecx, [ebp - 0x18]
call fcn.0041b680
test al, al
jne 0x40b038
jmp 0x40ae70
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x9c], 0
call fcn.0041a990
push 0x442c4c
mov ecx, eax
call fcn.00418b00
push eax
lea ecx, [ebp - 0xa8]
call fcn.00418450
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0xa8]
mov byte [ebp - 4], 6
call fcn.004198e0
mov byte [ebp - 4], 7
cmp dword [ebp - 0x1c], 0x10
mov edi, dword [ebp - 0x20]
lea edx, [ebp - 0x30]
cmovae edx, dword [ebp - 0x30]
mov esi, 0x12
cmp edi, esi
cmovb esi, edi
test esi, esi
je 0x40af27
mov ecx, 0x442c50
sub esi, 4
jb 0x40aee8
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x40aeed
add edx, 4
add ecx, 4
sub esi, 4
jae 0x40aed7
cmp esi, 0xfffffffc
je 0x40af21
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x40af1a
cmp esi, 0xfffffffd
je 0x40af21
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x40af1a
cmp esi, 0xfffffffe
je 0x40af21
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x40af1a
cmp esi, 0xffffffff
je 0x40af21
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x40af21
sbb eax, eax
or eax, 1
jmp 0x40af23
xor eax, eax
test eax, eax
jne 0x40af3b
cmp edi, 0x12
jae 0x40af31
or eax, 0xffffffff
jmp 0x40af39
xor eax, eax
cmp edi, 0x12
setne al
test eax, eax
sete al
test al, al
jne 0x40afbd
mov edx, 0x442c64
lea ecx, [ebp - 0x30]
call fcn.00413ad0
test al, al
jne 0x40afbd
mov edx, 0x442c78
lea ecx, [ebp - 0x30]
call fcn.00413ad0
test al, al
jne 0x40afbd
cmp dword [ebp - 0x1c], 0x10
jb 0x40af75
push dword [ebp - 0x30]
call fcn.0041df62
add esp, 4
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x1c], 0xf
mov dword [ebp - 0x20], 0
mov byte [ebp - 0x30], 0
mov byte [ebp - 4], 5
call fcn.004187f0
lea ecx, [ebp - 0x18]
call fcn.0041b370
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x40]
call fcn.0041aa40
push eax
lea ecx, [ebp - 0x18]
call fcn.0041b680
test al, al
je 0x40ae70
jmp 0x40b038
lea ecx, [ebp - 0x18]
mov byte [ebx + 0x96], 1
mov dword [ebp - 0x44], 0
call fcn.0041a990
push str.active
mov ecx, eax
call fcn.00418b00
push eax
lea ecx, [ebp - 0x50]
call fcn.00418450
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 8
call fcn.00419710
lea ecx, [ebp - 0x50]
mov byte [ebx + 0x97], al
mov byte [ebp - 4], 7
call fcn.004187f0
cmp dword [ebp - 0x1c], 0x10
jb 0x40b017
push dword [ebp - 0x30]
call fcn.0041df62
add esp, 4
lea ecx, [ebp - 0xa8]
mov dword [ebp - 0x1c], 0xf
mov dword [ebp - 0x20], 0
mov byte [ebp - 0x30], 0
mov byte [ebp - 4], 5
call fcn.004187f0
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 4
call fcn.004187f0
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 2
call fcn.004187f0
cmp byte [ebx + 0x96], 0
mov dword [ebp - 0x3c], str.gacela2_nurago.com
mov dword [ebp - 0x38], str.intage_nurago.com
mov dword [ebp - 0x34], str.addontest_nurago.com
jne 0x40b4f1
lea eax, [ebp - 0x44]
push eax
push 0x20219
push 0
push str.SOFTWAREMozillaFirefoxExtensions
push 0x80000002
mov dword [ebp - 0x44], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x40b0d0
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
xor esi, esi
push 0
push 0
lea eax, [ebp - 0x14]
push eax
push 0
push dword [ebp + esi*4 - 0x3c]
mov dword [ebp - 0x14], 0
push dword [ebp - 0x44]
call edi
test eax, eax
je 0x40b0c9
inc esi
cmp esi, 3
jb 0x40b0a3
jmp 0x40b0d0
mov byte [ebx + 0x96], 1
push str.extensions.ini
lea edx, [ebp - 0x68]
lea ecx, [ebp - 0x98]
call fcn.00413560
mov byte [ebp - 4], 9
sub esp, 8
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x178]
mov dword [ebp - 0x178], 0x443150
mov dword [ebp - 0xe0], 0
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0x164], 0
mov dword [ebp - 0x160], 0
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 0
mov dword [ebp - 0x154], 0
mov dword [ebp - 0x150], 0
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x148], 0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x138], 0
mov dword [ebp - 0x134], 0
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x128], 0
mov dword [ebp - 0x118], 0
call fcn.0040ddb0
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x118], 0
je 0x40b3e2
mov ecx, dword [ebp - 0x178]
add ecx, 4
mov byte [ebp - 0x179], 0
mov eax, dword [ecx]
cmp dword [ebp + eax - 0x16c], 0
jne 0x40b3ab
nop
xor eax, eax
mov dword [ebp - 0x1c], 7
mov dword [ebp - 0x20], 0
mov word [ebp - 0x30], ax
mov eax, dword [ecx]
lea ecx, [ebp - 0x178]
add ecx, eax
lea eax, [ebp - 0x14]
push eax
call fcn.00401b10
push eax
mov byte [ebp - 4], 0xc
call fcn.00404b60
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x14]
add esp, 4
mov esi, eax
test ecx, ecx
je 0x40b252
mov edx, dword [ecx]
call dword [edx + 8]
test eax, eax
je 0x40b252
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx]
mov eax, dword [esi]
push 0xa
mov ecx, esi
call dword [eax + 0x30]
movzx eax, ax
push eax
lea edx, [ebp - 0x30]
lea ecx, [ebp - 0x178]
call fcn.00414e10
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x30]
add esp, 4
cmp ebx, 8
lea eax, [ebp - 0x30]
cmovae eax, edi
cmp word [eax], 0x5b
jne 0x40b2fc
mov edx, dword [ebp - 0x20]
cmp ebx, 8
lea ecx, [ebp - 0x30]
mov esi, 0xf
cmovae ecx, edi
cmp edx, esi
cmovb esi, edx
test esi, esi
je 0x40b2bc
mov edx, str._ExtensionDirs_
mov ax, word [ecx]
cmp ax, word [edx]
jne 0x40b2d8
add ecx, 2
add edx, 2
dec esi
jne 0x40b2a8
mov edx, dword [ebp - 0x20]
xor eax, eax
test eax, eax
jne 0x40b2f3
cmp edx, 0xf
jae 0x40b2e9
or eax, 0xffffffff
test eax, eax
sete byte [ebp - 0x179]
jmp 0x40b35f
movzx eax, word [ecx]
cmp ax, word [edx]
mov edx, dword [ebp - 0x20]
sbb eax, eax
and eax, 0xfffffffe
inc eax
jmp 0x40b2be
xor eax, eax
cmp edx, 0xf
setne al
test eax, eax
sete byte [ebp - 0x179]
jmp 0x40b35f
cmp byte [ebp - 0x179], 0
je 0x40b35f
mov eax, dword [ebp - 0x20]
cmp ebx, 8
lea ecx, [ebp - 0x30]
cmovae ecx, edi
lea eax, [ecx + eax*2]
lea ecx, [ebp - 0x30]
cmovae ecx, edi
cmp ecx, eax
je 0x40b33b
mov edi, edi
cmp word [ecx], 0x2f
jne 0x40b32e
mov edx, 0x5c
mov word [ecx], dx
add ecx, 2
cmp ecx, eax
jne 0x40b320
mov ebx, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x184]
cmp dword [ecx + 0x14], 8
jb 0x40b34b
mov eax, dword [ecx]
jmp 0x40b34d
mov eax, ecx
push dword [ecx + 0x10]
push ecx
push eax
lea ecx, [ebp - 0x30]
call fcn.0040f510
cmp eax, 0xffffffff
jne 0x40b38c
mov byte [ebp - 4], 0xa
cmp ebx, 8
jb 0x40b371
push edi
call fcn.0041df62
add esp, 4
mov ecx, dword [ebp - 0x178]
add ecx, 4
mov eax, dword [ecx]
cmp dword [ebp + eax - 0x16c], 0
je 0x40b200
jmp 0x40b3ab
mov eax, dword [ebp - 0x180]
mov byte [ebp - 4], 0xa
mov byte [eax + 0x97], 1
cmp ebx, 8
jb 0x40b3ab
push edi
call fcn.0041df62
add esp, 4
lea ecx, [ebp - 0x168]
call fcn.0040fef0
test eax, eax
jne 0x40b3e2
mov eax, dword [ebp - 0x178]
lea ecx, [ebp - 0x178]
mov eax, dword [eax + 4]
add ecx, eax
mov eax, dword [ecx + 0xc]
or eax, 2
cmp dword [ecx + 0x38], 0
jne 0x40b3da
or eax, 4
push 0
push eax
call fcn.00401a60
mov byte [ebp - 4], 9
mov eax, dword [ebp - 0x178]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_ifstream_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::basic_ifstream_wchar_t__struct_std::char_traits_wchar_t__.0
mov eax, dword [ebp - 0x178]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x70]
mov dword [ebp + ecx - 0x17c], eax
cmp dword [ebp - 0x118], 0
mov dword [ebp - method.std::basic_filebuf_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::basic_filebuf_wchar_t__struct_std::char_traits_wchar_t__.0
je 0x40b452
mov edx, dword [ebp - 0x15c]
lea eax, [ebp - 0x124]
cmp dword [edx], eax
jne 0x40b452
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x12c]
mov dword [edx], eax
mov eax, dword [ebp - 0x14c]
mov dword [eax], ecx
mov eax, dword [ebp - 0x13c]
sub ecx, ecx
sar ecx, 1
mov dword [eax], ecx
cmp byte [ebp - 0x11c], 0
je 0x40b466
lea ecx, [ebp - 0x168]
call fcn.0040fef0
mov esi, dword [ebp - 0x134]
mov dword [ebp - method.std::basic_streambuf_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::basic_streambuf_wchar_t__struct_std::char_traits_wchar_t__.0
test esi, esi
je 0x40b49a
mov ecx, dword [esi]
test ecx, ecx
je 0x40b491
mov eax, dword [ecx]
call dword [eax + 8]
test eax, eax
je 0x40b491
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx]
push esi
call fcn.0041df62
add esp, 4
mov eax, dword [ebp - 0x178]
mov eax, dword [eax + 4]
mov dword [ebp + eax - method.std::basic_istream_wchar_t__struct_std::char_traits_wchar_t__.virtual_0], vtable.std::basic_istream_wchar_t__struct_std::char_traits_wchar_t__.0
mov eax, dword [ebp - 0x178]
mov ecx, dword [eax + 4]
lea eax, [ecx - 0x18]
mov dword [ebp + ecx - 0x17c], eax
lea eax, [ebp - 0x108]
push eax
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
call fcn.0041d8ae
add esp, 4
cmp dword [ebp - 0x84], 8
jb 0x40b4f1
push dword [ebp - 0x98]
call fcn.0041df62
add esp, 4
cmp dword [ebp - 0x6c], 0x10
jb 0x40b502
push dword [ebp - 0x80]
call fcn.0041df62
add esp, 4
cmp dword [ebp - 0xac], 8
mov dword [ebp - 0x6c], 0xf
mov dword [ebp - 0x70], 0
mov byte [ebp - 0x80], 0
jb 0x40b52b
push dword [ebp - 0xc0]
call fcn.0041df62
add esp, 4
xor eax, eax
cmp dword [ebp - 0x54], 8
mov dword [ebp - 0xac], 7
mov dword [ebp - 0xb0], 0
mov word [ebp - 0xc0], ax
jb 0x40b559
push dword [ebp - 0x68]
call fcn.0041df62
add esp, 4
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.0041ddb7
mov esp, ebp
pop ebp
ret 0x10