Function at 0x452c80
Capabilities:
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x4d9686
push eax
mov eax, 0x14e0
mov dword fs:[0], esp
call fcn.004d4ce0
push ebx
mov ebx, ecx
push ebp
push esi
push edi
lea ecx, [ebx + 0x43d8]
mov dword [esp + 0x18], ebx
call fcn.004c04f0
cmp eax, dword [esp + 0x1504]
jne 0x453736
mov eax, dword [ebx + 0x24acc]
test eax, eax
mov dword [esp + 0x14], eax
je 0x453736
mov edi, dword [esp + 0x1500]
mov ebp, dword [esp + 0x1508]
mov esi, dword [sym.imp.USER32.dll_GetMenuItemInfoW]
cmp edi, 2
jne 0x452d54
lea eax, [esp + 0x38]
mov dword [esp + 0x38], 0x30
push eax
push 0
push 0x4e20
push ebp
mov dword [esp + 0x4c], 4
mov dword [esp + 0x5c], 0
call esi
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x452d24
push eax
call fcn.004be340
add esp, 4
lea ecx, [esp + 0x38]
mov dword [esp + 0x4c], 0
push ecx
push 0
push 0x9c6e
push ebp
call esi
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x452d54
cmp dword [ebx + 0x30190], eax
je 0x452d54
push eax
call fcn.004be340
add esp, 4
mov eax, dword [esp + 0x150c]
test eax, eax
je 0x453736
test edi, edi
jne 0x452d89
push 1
mov ecx, ebx
call fcn.004504f0
neg eax
sbb eax, eax
and eax, 8
push eax
push 0x9c63
push ebp
call dword [sym.imp.USER32.dll_CheckMenuItem]
jmp 0x453736
cmp edi, 1
jne 0x452db1
mov ecx, dword [esp + 0x14]
push edi
call fcn.004a1aa0
neg eax
sbb eax, eax
and eax, 8
push eax
push 0x9c90
push ebp
call dword [sym.imp.USER32.dll_CheckMenuItem]
jmp 0x453736
cmp edi, 2
jne 0x4533ac
push ebp
mov ecx, ebx
call fcn.00458480
mov esi, dword [sym.imp.USER32.dll_CheckMenuItem]
push 0
push 0x800e
push ebp
call esi
push 0
push 0x800f
push ebp
call esi
push 0
push 0x8010
push ebp
call esi
push 0
push 0x8011
push ebp
call esi
push 0
push 0x8012
push ebp
call esi
mov ecx, dword [esp + 0x14]
call fcn.004a12c0
test eax, eax
jl 0x452e17
cmp eax, 4
jg 0x452e17
add eax, 0x800e
push 8
push eax
push ebp
call esi
push 3
push ebp
mov dword [esp + 0x40], 0x30
mov dword [esp + 0x44], 6
call dword [sym.imp.USER32.dll_GetSubMenu]
mov ebx, eax
push ebx
call dword [sym.imp.USER32.dll_GetMenuItemCount]
mov edi, 1
mov dword [esp + 0x1c], eax
cmp eax, edi
jle 0x452e9c
push 0x400
push edi
push ebx
call esi
push 0x400
lea edx, [esp + 0x2a4]
push 0x103
push edx
push edi
push ebx
call dword [sym.imp.USER32.dll_GetMenuStringW]
test eax, eax
je 0x452e93
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x2a0]
add eax, 0x44
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_wcscmp]
add esp, 8
test eax, eax
jne 0x452e93
push 0x408
push edi
push ebx
call esi
mov eax, dword [esp + 0x1c]
inc edi
cmp edi, eax
jl 0x452e46
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x30190]
test eax, eax
je 0x452f11
lea eax, [esp + 0x38]
mov edi, 0x30
push eax
push 0
push 0x9c6e
push ebp
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], 4
call dword [sym.imp.USER32.dll_GetMenuItemInfoW]
test eax, eax
je 0x452f11
mov eax, dword [esp + 0x4c]
test eax, eax
jne 0x452f11
mov dword [esp + 0x38], edi
mov edi, dword [esp + 0x18]
lea edx, [esp + 0x38]
mov dword [esp + 0x3c], 6
mov ecx, dword [edi + 0x30190]
push edx
push 0
push 0x9c6e
push ebp
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], 0x9c6e
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
jmp 0x452f15
mov edi, dword [esp + 0x18]
call fcn.00491010
test eax, eax
je 0x452f9d
mov ecx, eax
call fcn.004b3e90
mov eax, dword [0x722ab0]
and eax, 1
shl eax, 3
push eax
push 0x8091
push ebp
call esi
mov ecx, dword [0x722ab0]
and ecx, 4
shl ecx, 1
push ecx
push 0x8092
push ebp
call esi
mov edx, dword [0x722ab0]
and edx, 8
push edx
push 0x8093
push ebp
call esi
mov eax, dword [0x722ab0]
and eax, 2
shl eax, 2
push eax
push 0x8094
push ebp
call esi
mov ecx, dword [0x722ab0]
shr ecx, 1
and ecx, 8
push ecx
push 0x8095
push ebp
call esi
mov edx, dword [0x725e40]
neg edx
sbb edx, edx
and edx, 8
push edx
push 0x8085
push ebp
call esi
mov ecx, dword [edi + 0x2b5a8]
xor ebx, ebx
test ecx, ecx
mov dword [esp + 0x1c], ebx
je 0x452fca
call fcn.004abc50
mov eax, dword [edi + 0x2b5a8]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x452fc6
mov ebx, dword [eax + 8]
sub ebx, ecx
sar ebx, 1
mov dword [esp + 0x1c], ebx
mov eax, ebx
lea ecx, [esp + 0x38]
neg eax
sbb eax, eax
push ecx
and al, 0xfd
push 0
add eax, 3
push 0x4e20
push ebp
mov dword [esp + 0x4c], 1
mov dword [esp + 0x54], eax
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
mov eax, dword [edi + 0x2b5a8]
test eax, eax
je 0x453736
mov edx, dword [0x4ed0fc]
mov dword [esp + 0x10], edx
test ebx, ebx
mov dword [esp + 0x14f8], 0
jle 0x453370
mov dword [esp + 0x2c], 0xffffffff
call dword [sym.imp.USER32.dll_CreatePopupMenu]
mov edi, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], edi
mov ecx, dword [eax + 0x2b5a8]
call fcn.004ac340
test edi, edi
mov dword [esp + 0x20], eax
je 0x453370
test ebx, ebx
mov dword [esp + 0x14], 0
jle 0x453310
mov ebx, dword [esp + 0x18]
mov ecx, dword [ebx + 0x2b5a8]
mov edx, dword [esp + 0x14]
mov dword [esp + 0x3c], 0x42
mov dword [esp + 0x40], 0
mov eax, dword [ecx + 4]
lea ecx, [esp + 0x34]
mov ax, word [eax + edx*2]
push eax
push ecx
call fcn.004abf50
add esp, 8
mov ebx, eax
mov esi, dword [ebx]
mov edi, dword [esp + 0x10]
cmp edi, esi
mov byte [esp + 0x14f8], 1
je 0x453158
mov eax, dword [edi - 0xc]
lea ecx, [edi - 0xc]
test eax, eax
jge 0x4530be
lea edx, [edi - 0xc]
cmp edx, dword [0x4ed100]
jne 0x4530c5
mov edx, dword [esi - 0xc]
test edx, edx
jge 0x453113
mov ebx, dword [esi - 8]
cmp eax, 1
jg 0x4530d2
cmp ebx, dword [edi - 4]
jle 0x4530ed
lea ecx, [esp + 0x10]
call fcn.00406610
push ebx
lea ecx, [esp + 0x14]
call fcn.00406580
mov edi, dword [esp + 0x10]
test eax, eax
je 0x453158
lea eax, [ebx + ebx]
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
mov dword [ecx - 8], ebx
mov edx, dword [esp + 0x10]
mov word [eax + edx], 0
jmp 0x453154
mov eax, dword [0x4ed100]
add edi, 0xfffffff4
cmp edi, eax
je 0x453144
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x45313a
mov eax, dword [esp + 0x10]
add eax, 0xfffffff4
push eax
call fcn.004d4cc1
add esp, 4
mov ecx, dword [0x4ed0fc]
mov dword [esp + 0x10], ecx
mov ebx, dword [ebx]
mov dword [esp + 0x10], ebx
add ebx, 0xfffffff4
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
mov ecx, dword [0x4ed100]
mov byte [esp + 0x14f8], 0
lea edx, [eax - 0xc]
cmp edx, ecx
je 0x453193
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x45318f
mov eax, dword [esp + 0x34]
add eax, 0xfffffff4
push eax
call fcn.004d4cc1
add esp, 4
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x453298
push 0x28
call fcn.004afb70
add esp, 4
mov dword [esp + 0x24], eax
test eax, eax
je 0x453294
mov ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
test ebx, ebx
je 0x453294
mov edi, dword [esp + 0x10]
mov eax, dword [edi - 0xc]
lea ecx, [edi - 0xc]
cmp eax, 1
mov dword [esp + 0x30], ecx
jg 0x45321b
mov eax, dword [edi - 8]
mov esi, dword [edi - 4]
lea edx, [eax + ebx]
cmp edx, esi
jg 0x45321b
mov esi, dword [esp + 0x24]
lea ecx, [ebx + ebx]
lea edi, [edi + eax*2]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 8]
add ecx, ebx
mov dword [eax - 8], ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax - 8]
mov word [eax + ecx*2], 0
jmp 0x453294
mov esi, dword [edi - 8]
lea eax, [ebx + esi]
test eax, eax
je 0x453270
push eax
lea ecx, [esp + 0x14]
call fcn.00406580
test eax, eax
je 0x453294
lea eax, [esi + esi]
mov esi, edi
mov edi, dword [esp + 0x10]
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
lea ecx, [ebx + ebx]
lea edi, [eax + edx]
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x30]
cmp ecx, dword [0x4ed100]
je 0x453298
mov ecx, dword [esp + 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x453294
mov edx, dword [esp + 0x30]
push edx
call fcn.004d4cc1
add esp, 4
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
push 0
push 0
push 0xffffffffffffffff
lea eax, [esi + 0x4e21]
lea edx, [esp + 0x44]
mov dword [esp + 0x54], eax
mov dword [esp + 0x68], edi
mov ecx, dword [edi - 8]
mov edi, dword [esp + 0x34]
push 0
push edx
push 1
push esi
push edi
mov dword [esp + 0x80], ecx
call fcn.004be100
mov ebx, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
mov eax, dword [ebx + 0x2b5a8]
mov eax, dword [eax + 0x14]
mov ecx, dword [eax + esi*4]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 0x28
test eax, eax
jne 0x4532f9
mov eax, dword [esp + 0x48]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
inc esi
cmp esi, eax
mov dword [esp + 0x14], esi
jl 0x453062
mov esi, dword [sym.imp.USER32.dll_CheckMenuItem]
mov ebx, dword [esp + 0x2c]
push edi
call fcn.004befe0
add esp, 4
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], 0x30
mov dword [esp + 0x3c], 4
push ecx
push 0
push 0x4e20
push ebp
mov dword [esp + 0x5c], edi
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
mov edx, dword [esp + 0x20]
push edx
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 4
test eax, eax
je 0x45335b
cmp ebx, 0xffffffff
jne 0x453360
mov ebx, 0x4e21
push 8
push ebx
push edi
call esi
push 2
push ebx
push edi
call dword [sym.imp.USER32.dll_EnableMenuItem]
mov eax, dword [esp + 0x10]
mov edx, dword [0x4ed100]
lea ecx, [eax - 0xc]
cmp ecx, edx
je 0x453736
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x453736
mov edx, dword [esp + 0x10]
add edx, 0xfffffff4
push edx
call fcn.004d4cc1
add esp, 4
jmp 0x453736
cmp edi, 4
jne 0x453736
mov eax, dword [0x726e54]
mov esi, dword [sym.imp.USER32.dll_CheckMenuItem]
neg eax
sbb eax, eax
and eax, 8
push eax
push 0x8037
push ebp
call esi
mov ecx, dword [0x725e20]
neg ecx
sbb ecx, ecx
and ecx, 8
push ecx
push 0x8031
push ebp
call esi
mov edx, dword [0x725e24]
neg edx
sbb edx, edx
and edx, 8
push edx
push 0x8032
push ebp
call esi
mov eax, dword [0x725e4c]
neg eax
sbb eax, eax
and eax, 8
push eax
push 0x80ad
push ebp
call esi
push 0
push ebp
lea ecx, [ebx + 0xf814]
call fcn.004672a0
push 0
push 0x80df
push ebp
call fcn.004bef70
push 0
call fcn.00435240
mov esi, eax
add esp, 0x10
xor ebx, ebx
test esi, esi
jne 0x4534ac
mov ecx, 0x81
lea edi, [esp + 0x9a]
mov word [esp + 0x98], bx
lea edx, [esp + 0x98]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x20], 1
stosw word es:[edi], ax
push ecx
lea eax, [esp + 0x24]
push edx
push eax
push 0x500df0
push str.SOFTWAREClientsStartMenuInternet
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x40], 0x208
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
lea ecx, [esp + 0x98]
push str.IEXPLORE.EXE
push ecx
call dword [sym.imp.MSVCRT.dll__wcsicmp]
add esp, 8
test eax, eax
jne 0x4534ac
mov ebx, 1
neg esi
sbb esi, esi
and esi, 8
push esi
mov esi, dword [sym.imp.USER32.dll_CheckMenuItem]
push 0xa096
push ebp
call esi
neg ebx
sbb ebx, ebx
and ebx, 8
push ebx
push 0xa097
push ebp
call esi
mov edx, dword [0x73c17c]
neg edx
sbb edx, edx
and edx, 8
push edx
push 0xa07c
push ebp
call esi
mov ecx, 0x411
xor eax, eax
lea edi, [esp + 0x4aa]
mov word [esp + 0x4a8], 0
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x14]
push 0
stosw word es:[edi], ax
lea eax, [esp + 0x4ac]
push eax
call fcn.004a0e30
lea ecx, [esp + 0x4a8]
push ecx
push 0
call fcn.0040bbf0
add esp, 8
cmp eax, 2
jne 0x453532
push 1
jmp 0x45354c
test eax, eax
je 0x45354a
mov esi, dword [sym.imp.USER32.dll_EnableMenuItem]
push 1
push 0x9c6f
push ebp
call esi
push 0
jmp 0x45355c
push 0
mov esi, dword [sym.imp.USER32.dll_EnableMenuItem]
push 0x9c6f
push ebp
call esi
push 1
push 0x9c70
push ebp
call esi
mov edx, dword [0x722acc]
mov edi, dword [sym.imp.USER32.dll_CheckMenuItem]
neg edx
sbb edx, edx
and edx, 8
push edx
push 0x9c7f
push ebp
call edi
mov eax, dword [0x722ac4]
mov ebx, dword [sym.imp.USER32.dll_CheckMenuRadioItem]
add eax, 0xa099
push 8
push eax
push 0xa09b
push 0xa099
push ebp
call ebx
mov eax, dword [0x73eed4]
mov edx, dword [0x73eed8]
test eax, eax
jne 0x4535d6
test edx, edx
jne 0x4535d6
push 8
push 0xa0a6
push 0xa0a7
push 0xa0a6
push ebp
call ebx
push 1
push 0xa0a7
push ebp
call esi
jmp 0x4536d4
mov ecx, 0x81
xor eax, eax
lea edi, [esp + 0x9a]
mov word [esp + 0x98], 0
rep stosd dword es:[edi], eax
test edx, edx
stosw word es:[edi], ax
je 0x453618
push 0x17b
call fcn.004afb70
add esp, 4
lea ecx, [esp + 0x98]
push eax
push 0x4ed128
push 0x103
push ecx
jmp 0x453638
push 0x17a
call fcn.004afb70
add esp, 4
lea edx, [esp + 0x98]
push eax
push 0x4ed128
push 0x103
push edx
call dword [sym.imp.MSVCRT.dll__snwprintf]
mov ecx, 0xc
xor eax, eax
lea edi, [esp + 0x78]
add esp, 0x10
rep stosd dword es:[edi], eax
lea eax, [esp + 0x68]
mov dword [esp + 0x68], 0x30
push eax
push 0
push 0xa0a7
push ebp
call dword [sym.imp.USER32.dll_GetMenuItemInfoW]
test eax, eax
je 0x4536b4
mov edi, dword [esp + 0x6c]
lea edx, [esp + 0x68]
push edx
push 0
or edi, 0x40
lea ecx, [esp + 0xa0]
push 0xa0a7
push ebp
mov dword [esp + 0x7c], edi
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], 0x103
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
push 0
push 0xa0a7
push ebp
call fcn.004bef70
add esp, 0xc
mov eax, dword [0x72f968]
push 8
add eax, 0xa0a6
push eax
push 0xa0a7
push 0xa0a6
push ebp
call ebx
mov edi, dword [sym.imp.USER32.dll_CheckMenuItem]
mov ecx, dword [0x722afc]
neg ecx
sbb ecx, ecx
and ecx, 0xfffffff8
add ecx, 8
push ecx
push 0xa06e
push ebp
call edi
mov edx, dword [0x722afc]
dec edx
neg edx
sbb edx, edx
and edx, 0xfffffff8
add edx, 8
push edx
push 0xa06f
push ebp
call edi
mov esi, dword [0x722afc]
xor eax, eax
cmp esi, 2
setne al
dec eax
and eax, 8
push eax
push 0xa070
push ebp
call edi
mov esi, dword [esp + 0x18]
push ebp
mov ecx, esi
call fcn.0045ad60
push ebp
mov ecx, esi
call fcn.0045aad0
mov ecx, dword [esp + 0x14f0]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x14ec
ret 0x10