Function at 0x452520
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x85822f
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x94
mov eax, dword [0x9dce80]
push ebx
push ebp
mov ebp, ecx
push esi
push edi
test eax, eax
mov dword [esp + 0x14], ebp
je 0x452567
push str.CContextMenuSettingDlg::Apply_x1
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x10
mov eax, dword [ebp + 0x118]
test eax, eax
je 0x4530d7
mov dword [ebp + 0x118], 0
mov eax, dword [0x9dce80]
test eax, eax
je 0x4525a1
push str.CContextMenuSettingDlg::Apply_x2
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x10
push 1
mov ecx, ebp
call fcn.00830530
test eax, eax
je 0x4530dc
mov eax, dword [0x9dce80]
test eax, eax
je 0x4525d4
push str.CContextMenuSettingDlg::Apply_x3
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x10
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
xor esi, esi
mov ecx, 0xb
xor eax, eax
lea edi, [esp + 0x78]
mov dword [esp + 0x74], esi
rep stosd dword es:[edi], eax
mov eax, dword [ebp + 0xf0]
push esi
push esi
push 0x1004
push eax
call ebx
test eax, eax
jle 0x452688
mov ecx, dword [esp + 0x14]
lea ebp, [ecx + 0xd4]
push esi
mov ecx, ebp
call fcn.00828995
push esi
mov ecx, ebp
mov edi, eax
call fcn.0082a462
test eax, eax
je 0x45262d
mov dword [esp + edi*4 + 0x74], 1
cmp edi, 0xc
jge 0x45263d
mov edx, dword [esp + edi*4 + 0x74]
mov dword [edi*4 + 0x9bde80], edx
mov eax, dword [0x9dce80]
test eax, eax
je 0x452669
mov eax, dword [edi*4 + 0x9bde80]
push eax
push esi
push edi
push str.context_id__d___menu_index__d___check__d_
push str.ContextMenuSetting
push 0xffffffffffffffff
push 0x9dc5ec
call fcn.006600d0
add esp, 0x1c
mov ecx, dword [esp + 0x14]
push 0
push 0
push 0x1004
mov edx, dword [ecx + 0xf0]
inc esi
push edx
call ebx
cmp esi, eax
jl 0x45260f
mov ebp, dword [esp + 0x14]
lea ecx, [esp + 0x20]
call fcn.00626920
xor edi, edi
mov dword [esp + 0xac], 0
mov dword [esp + 0x34], edi
lea eax, [esp + 0x74]
mov ecx, 0xc
cmp dword [eax], 0
je 0x4526b1
inc edi
add eax, 4
dec ecx
jne 0x4526ab
mov eax, dword [ebp + 0x78]
push 0
push 0
push 0xf0
push eax
mov dword [esp + 0x44], edi
call ebx
xor ecx, ecx
cmp eax, 1
mov eax, dword [0x9dce80]
sete cl
test eax, eax
mov dword [0x9bde7c], ecx
je 0x452702
mov edx, dword [ebp + 0x11c]
push edx
push edi
push str._d__d
push str.ContextMenuSetting
push 0xffffffffffffffff
push 0x9dc5ec
call fcn.006600d0
add esp, 0x18
push 0x2001f
push str.softwareTECOcularSDConTextMenuSetting
push reloc.WSOCK32.dll_accept
lea ecx, [esp + 0x2c]
call fcn.00626a40
test eax, eax
jne 0x452c4e
mov eax, dword [0x9dce80]
test eax, eax
je 0x452744
push str.CContextMenuSettingDlg::Apply_x4
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x10
push 0x2001f
push str.softwareTECOcularSDConTextMenuSetting
push reloc.WSOCK32.dll_accept
lea ecx, [esp + 0x2c]
call fcn.00626ab0
test eax, eax
jne 0x4527dd
mov eax, dword [0x98b454]
mov dword [esp + 0x14], eax
push 0x1102
lea ecx, [esp + 0x18]
mov byte [esp + 0xb0], 1
call fcn.008325e8
mov ecx, dword [esp + 0x14]
push 0
push 0
push ecx
mov ecx, ebp
call fcn.0082f847
mov eax, dword [0x9dce80]
test eax, eax
je 0x4527b1
push str.Create_registry_failed
push str.ContextMenuSetting
push 0xffffffffffffffff
push 0x9dc5ec
call fcn.006600d0
add esp, 0x10
lea ecx, [esp + 0x14]
mov byte [esp + 0xac], 0
call fcn.00831eeb
lea ecx, [esp + 0x20]
mov dword [esp + 0xac], 0xffffffff
call fcn.006269c0
xor eax, eax
jmp 0x4530dc
mov eax, dword [0x9dce80]
test eax, eax
je 0x452800
push edi
push str.CContextMenuSettingDlg::Apply_x4.1__nCount_d
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x14
cmp edi, 0xc
jge 0x452908
push str.ConTextMenu0
lea ecx, [esp + 0x20]
call fcn.00831f5f
mov edx, dword [0x98b454]
mov dword [esp + 0x14], edx
push 0xc
push 0xc
lea eax, [esp + 0x1c]
mov bl, 3
push str.0_0_0__d__d
push eax
mov byte [esp + 0xbc], bl
call fcn.00826097
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x2c]
add esp, 0x10
push ecx
push edx
lea ecx, [esp + 0x28]
call fcn.00627d30
test eax, eax
jne 0x4528e6
mov eax, dword [0x98b454]
mov dword [esp + 0x10], eax
push 0x1102
lea ecx, [esp + 0x14]
mov byte [esp + 0xb0], 4
call fcn.008325e8
mov ecx, dword [esp + 0x10]
push 0
push 0
push ecx
mov ecx, ebp
call fcn.0082f847
mov eax, dword [0x9dce80]
test eax, eax
je 0x4528d6
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x18]
push edx
call fcn.00617650
mov eax, dword [eax]
mov byte [esp + 0xac], 5
push eax
push str._s_can_not_save
push str.ContextMenuSetting
push 0xffffffffffffffff
push 0x9dc5ec
call fcn.006600d0
add esp, 0x14
lea ecx, [esp + 0x18]
mov byte [esp + 0xac], 4
call fcn.00617ec0
lea ecx, [esp + 0x10]
mov byte [esp + 0xac], bl
call fcn.00831eeb
lea ecx, [esp + 0x14]
mov byte [esp + 0xac], 2
call fcn.00831eeb
lea ecx, [esp + 0x1c]
mov byte [esp + 0xac], 0
call fcn.00831eeb
push str.ConTextMenu
lea ecx, [esp + 0x34]
call fcn.00831f5f
xor esi, esi
lea ebx, [esp + 0x74]
mov eax, dword [0x98b454]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
push esi
lea ecx, [esp + 0x14]
push 0x933298
push ecx
mov byte [esp + 0xb8], 8
call fcn.00826097
mov edx, dword [0x98b454]
add esp, 0xc
mov dword [esp + 0x18], edx
lea edi, [esi + 1]
lea eax, [esp + 0x18]
push edi
push 0x933298
push eax
mov byte [esp + 0xb8], 9
call fcn.00826097
mov eax, dword [0x98b454]
add esp, 0xc
mov dword [esp + 0x1c], eax
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x18]
lea edx, [esp + 0x30]
push ecx
lea eax, [esp + 0x48]
push edx
push eax
mov byte [esp + 0xb8], 0xb
call fcn.0083212a
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0xb0], 0xc
call fcn.00832032
lea ecx, [esp + 0x44]
mov byte [esp + 0xac], 0xb
call fcn.00831eeb
cmp dword [ebx], 0
je 0x4529f1
lea ecx, [esp + 0x10]
lea edx, [esp + 0x38]
push ecx
push str.0_0_1_0_
push edx
call fcn.00832204
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xb0], 0xd
call fcn.00832032
mov byte [esp + 0xac], 0xb
lea ecx, [esp + 0x38]
jmp 0x452a23
lea eax, [esp + 0x10]
lea ecx, [esp + 0x3c]
push eax
push str.1_0_1_0_
push ecx
call fcn.00832204
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0xb0], 0xe
call fcn.00832032
mov byte [esp + 0xac], 0xb
lea ecx, [esp + 0x3c]
call fcn.00831eeb
mov eax, dword [0x9dce80]
test eax, eax
je 0x452a55
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
push edx
push eax
push esi
push str.CContextMenuSettingDlg::Apply_x4.2__i_d__strName_s__strNewGUID_s
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x1c
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push ecx
push edx
lea ecx, [esp + 0x28]
call fcn.00627d30
test eax, eax
mov eax, dword [0x9dce80]
jne 0x452b20
test eax, eax
je 0x452a92
push str.CContextMenuSettingDlg::Apply_x4.3
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x10
mov eax, dword [0x98b454]
mov dword [esp + 0x28], eax
push 0x1102
lea ecx, [esp + 0x2c]
mov byte [esp + 0xb0], 0xf
call fcn.008325e8
mov ecx, dword [esp + 0x28]
push 0
push 0
push ecx
mov ecx, ebp
call fcn.0082f847
mov eax, dword [0x9dce80]
test eax, eax
je 0x452b0d
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x40]
push edx
call fcn.00617650
mov eax, dword [eax]
mov byte [esp + 0xac], 0x10
push eax
push str.Registry__s_can_not_be_saved
push str.ContextMenuSetting
push 0xffffffffffffffff
push 0x9dc5ec
call fcn.006600d0
add esp, 0x14
lea ecx, [esp + 0x40]
mov byte [esp + 0xac], 0xf
call fcn.00617ec0
lea ecx, [esp + 0x28]
mov byte [esp + 0xac], 0xb
call fcn.00831eeb
jmp 0x452b89
test eax, eax
je 0x452b3d
push str.CContextMenuSettingDlg::Apply_x4.4
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x10
mov eax, dword [0x9dce80]
test eax, eax
je 0x452b89
mov ecx, dword [esp + 0x1c]
push ecx
lea ecx, [esp + 0x4c]
call fcn.00617650
mov edx, dword [eax]
mov byte [esp + 0xac], 0x11
push edx
push str.Save_registry__s_succeed
push str.ContextMenuSetting
push 0xffffffffffffffff
push 0x9dc5ec
call fcn.006600d0
add esp, 0x14
lea ecx, [esp + 0x48]
mov byte [esp + 0xac], 0xb
call fcn.00617ec0
lea ecx, [esp + 0x2c]
mov byte [esp + 0xac], 0xa
call fcn.00831eeb
lea ecx, [esp + 0x1c]
mov byte [esp + 0xac], 9
call fcn.00831eeb
lea ecx, [esp + 0x18]
mov byte [esp + 0xac], 8
call fcn.00831eeb
lea ecx, [esp + 0x10]
mov byte [esp + 0xac], 7
call fcn.00831eeb
lea ecx, [esp + 0x14]
mov byte [esp + 0xac], 6
call fcn.00831eeb
mov esi, edi
add ebx, 4
cmp esi, 0xc
jl 0x45291c
call sub.KERNEL32.dll_GetTickCount
mov esi, eax
lea ecx, [esp + 0x20]
push esi
push str.TickCount
call fcn.00627b80
mov eax, dword [0x9dce80]
test eax, eax
je 0x452c25
push esi
push str.CContextMenuSettingDlg::Apply_x4.5__dwTickCount_lu
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x14
lea ecx, [esp + 0x20]
call fcn.00626a90
mov eax, dword [esp + 0x34]
lea ecx, [esp + 0x30]
mov dword [ebp + 0x11c], eax
mov byte [esp + 0xac], 0
call fcn.00831eeb
jmp 0x4530c3
lea ecx, [esp + 0x4c]
call fcn.0082aad0
lea ecx, [esp + 0x60]
mov byte [esp + 0xac], 0x12
call fcn.0082aad0
lea ecx, [esp + 0x4c]
mov byte [esp + 0xac], 0x13
push ecx
lea ecx, [esp + 0x24]
call fcn.006289d0
mov eax, dword [0x9dce80]
test eax, eax
je 0x452cac
mov edx, dword [ebp + 0x11c]
mov eax, dword [esp + 0x54]
push edx
push eax
push str.CContextMenuSettingDlg::Apply_x5__arrValuesSize_d__m_nLastCount_d
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x18
mov eax, dword [esp + 0x54]
xor esi, esi
test eax, eax
jle 0x452d02
mov bl, 0x14
mov ecx, dword [esp + 0x50]
lea edx, [esp + 0x30]
mov eax, dword [ecx + esi*4]
lea ecx, [esp + 0x20]
push eax
push edx
call fcn.00627070
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x30]
push eax
push ecx
lea ecx, [esp + 0x68]
mov byte [esp + 0xb4], bl
call fcn.0082ada5
lea ecx, [esp + 0x30]
mov byte [esp + 0xac], 0x13
call fcn.00831eeb
mov eax, dword [esp + 0x54]
inc esi
cmp esi, eax
jl 0x452cb8
cmp dword [ebp + 0x11c], 0xc
jne 0x452e17
cmp edi, 0xc
jge 0x452e17
push str.ConTextMenu0
lea ecx, [esp + 0x14]
call fcn.00831f5f
mov edx, dword [0x98b454]
mov dword [esp + 0x28], edx
push 0xc
push 0xc
lea eax, [esp + 0x30]
push str.0_0_0__d__d
push eax
mov byte [esp + 0xbc], 0x16
call fcn.00826097
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x20]
add esp, 0x10
push ecx
push edx
lea ecx, [esp + 0x28]
call fcn.00627d30
test eax, eax
jne 0x452df5
mov eax, dword [0x98b454]
mov dword [esp + 0x18], eax
mov bl, 0x17
push 0x1102
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb0], bl
call fcn.008325e8
mov ecx, dword [esp + 0x18]
push 0
push 0
push ecx
mov ecx, ebp
call fcn.0082f847
mov eax, dword [0x9dce80]
test eax, eax
je 0x452de4
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x2c]
push edx
call fcn.00617650
mov eax, dword [eax]
mov byte [esp + 0xac], 0x18
push eax
push str.Registry__s_can_not_be_saved
push str.ContextMenuSetting
push 0xffffffffffffffff
push 0x9dc5ec
call fcn.006600d0
add esp, 0x14
lea ecx, [esp + 0x2c]
mov byte [esp + 0xac], bl
call fcn.00617ec0
lea ecx, [esp + 0x18]
mov byte [esp + 0xac], 0x16
call fcn.00831eeb
lea ecx, [esp + 0x28]
mov byte [esp + 0xac], 0x15
call fcn.00831eeb
lea ecx, [esp + 0x10]
mov byte [esp + 0xac], 0x13
call fcn.00831eeb
mov eax, dword [0x9dce80]
test eax, eax
je 0x452e3a
push edi
push str.CContextMenuSettingDlg::Apply_x6__nCount_d
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x14
cmp edi, 0xc
jne 0x452f53
push str.ConTextMenu0
lea ecx, [esp + 0x14]
call fcn.00831f5f
mov ecx, dword [esp + 0x10]
mov bl, 0x19
push ecx
lea ecx, [esp + 0x24]
mov byte [esp + 0xb0], bl
call fcn.00628d30
test eax, eax
mov eax, dword [0x9dce80]
je 0x452eda
test eax, eax
je 0x452e8e
push str.CContextMenuSettingDlg::Apply_x7.1
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x10
mov eax, dword [0x9dce80]
test eax, eax
je 0x452f42
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x2c]
push edx
call fcn.00617650
mov eax, dword [eax]
mov byte [esp + 0xac], 0x1a
push eax
push str.Delete_registry__s_succeed
push str.ContextMenuSetting
push 0xffffffffffffffff
push 0x9dc5ec
call fcn.006600d0
add esp, 0x14
mov byte [esp + 0xac], bl
lea ecx, [esp + 0x2c]
jmp 0x452f3d
test eax, eax
je 0x452ef7
push str.CContextMenuSettingDlg::Apply_x7.2
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x10
mov eax, dword [0x9dce80]
test eax, eax
je 0x452f42
mov ecx, dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x30]
call fcn.00617650
mov edx, dword [eax]
mov byte [esp + 0xac], 0x1b
push edx
push str.Delete_registry__s_failed
push str.ContextMenuSetting
push 0xffffffffffffffff
push 0x9dc5ec
call fcn.006600d0
add esp, 0x14
mov byte [esp + 0xac], bl
lea ecx, [esp + 0x2c]
call fcn.00617ec0
lea ecx, [esp + 0x10]
mov byte [esp + 0xac], 0x13
call fcn.00831eeb
xor esi, esi
lea ebp, [esp + 0x74]
mov bl, 0x1c
mov eax, dword [0x9dce80]
test eax, eax
je 0x452f82
mov eax, dword [ebp]
push eax
push esi
push str.CContextMenuSettingDlg::Apply_x8__bChecked__d__d
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x18
mov ecx, dword [0x98b454]
mov dword [esp + 0x18], ecx
lea edi, [esi + 1]
lea edx, [esp + 0x18]
push edi
push str.ConTextMenu_u
push edx
mov byte [esp + 0xb8], bl
call fcn.00826097
mov eax, dword [0x98b454]
add esp, 0xc
mov dword [esp + 0x10], eax
mov eax, dword [ebp]
mov byte [esp + 0xac], 0x1d
test eax, eax
push esi
je 0x452fce
lea ecx, [esp + 0x14]
push str.0_0_1_0__d
push ecx
jmp 0x452fd8
lea edx, [esp + 0x14]
push str.1_0_1_0__d
push edx
call fcn.00826097
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
add esp, 0xc
push eax
push ecx
lea ecx, [esp + 0x28]
call fcn.00627d30
mov ecx, dword [0x9dce80]
test ecx, ecx
je 0x453017
push eax
push str.CContextMenuSettingDlg::Apply_x9__bSave_d
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x14
lea ecx, [esp + 0x10]
mov byte [esp + 0xac], bl
call fcn.00831eeb
lea ecx, [esp + 0x18]
mov byte [esp + 0xac], 0x13
call fcn.00831eeb
mov esi, edi
add ebp, 4
cmp esi, 0xc
jl 0x452f5b
call sub.KERNEL32.dll_GetTickCount
mov esi, eax
lea ecx, [esp + 0x20]
push esi
push str.TickCount
call fcn.00627b80
lea ecx, [esp + 0x20]
call fcn.00626a90
mov eax, dword [0x9dce80]
test eax, eax
je 0x453093
mov edx, dword [esp + 0x14]
push esi
mov eax, dword [edx + 0x11c]
push eax
push 0x936580
push str.ContextMenuSetting
push 4
push 0x9dc5ec
call fcn.006600d0
add esp, 0x18
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
mov byte [esp + 0xac], 0x12
mov dword [edx + 0x11c], ecx
lea ecx, [esp + 0x60]
call fcn.0082ab03
lea ecx, [esp + 0x4c]
mov byte [esp + 0xac], 0
call fcn.0082ab03
lea ecx, [esp + 0x20]
mov dword [esp + 0xac], 0xffffffff
call fcn.006269c0
mov eax, 1
mov ecx, dword [esp + 0xa4]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0xa0
ret