Function at 0x4031b0
Capabilities:
Delete registry value
Query or enumerate registry value
Set registry value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, 0x1820
call sym.__alloca
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
cmp eax, 0x110
jle 0x403299
lea edx, [eax - 0x111]
cmp edx, 0xe
ja case.default.0x4031e6
mov edi, dword [ebp + 0x14]
mov esi, dword [ebp + 0x10]
jmp dword [edx*4 + 0x40d3c8]
mov dword [ebp - 0x10], 0
movzx eax, si
lea ebx, [eax - 0x80e8]
cmp ebx, 0x63
ja 0x40357a
lea eax, [ebp - 0x1c]
push eax
push 0x20019
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionAppletsRegeditFavorites
push 0x80000001
call dword [sym.imp.advapi32.dll_RegOpenKeyExW]
test eax, eax
jne case.0x403591.32825
mov dword [ebp - 0x2c], 0x400
mov dword [ebp - 0x28], 0x1000
mov dword [ebp - 0x24], 0
lea eax, [ebp - 0x28]
lea esi, [ebp - 0x182c]
lea ecx, [ebp - 0x24]
lea edx, [ebp - 0x2c]
lea edi, [ebp - 0x82c]
push eax
push esi
push ecx
push 0
push edx
push edi
push ebx
push dword [ebp - 0x1c]
call dword [sym.imp.advapi32.dll_RegEnumValueW]
test eax, eax
jne 0x40328b
mov eax, dword [0x40d34c]
mov eax, dword [eax]
mov edi, dword [eax + 4]
push esi
push edi
call dbg.FindPathInTree
add esp, 8
push eax
push 9
push 0x110b
push edi
call dword [sym.imp.user32.dll_SendMessageW]
push dword [ebp - 0x1c]
call dword [sym.imp.advapi32.dll_RegCloseKey]
jmp case.0x403591.32825
dec eax
cmp eax, 5
ja case.0x4032a3.3
jmp dword [eax*4 + 0x40d3b0]
mov esi, dword [0x40d010]
mov eax, dword [esi]
sub esp, 0x30
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ecx
movaps xmm0, xmmword [0x40d3a0]
movups xmmword [esp + 0xc], xmm0
mov eax, dword [0x40d7a0]
mov dword [esp + 4], eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x1c], 0x80000000
mov dword [esp + 8], str.regedit_child_window
mov dword [esp], 0
call dword [sym.imp.user32.dll_CreateWindowExW]
mov edi, dword [sym.imp.user32.dll_LoadStringW]
push 0x20
push 0x411498
push 0x8152
push dword [esi]
call edi
push 0x20
push 0x4114d8
push 0x8153
push dword [esi]
call edi
push 0x20
push 0x411518
push 0x8154
push dword [esi]
call edi
push 0x40
push 0x411558
push 0x8155
jmp 0x403571
cmp eax, 0x211
je 0x403532
cmp eax, 0x212
jne case.0x4032a3.3
lea eax, [ebp - 0x182c]
push eax
push ecx
call dword [sym.imp.user32.dll_GetClientRect]
mov eax, dword [ebp - 0x1824]
mov dword [ebp - 0x82c], eax
mov esi, dword [0x40d79c]
mov ebx, dword [sym.imp.user32.dll_SendMessageW]
push 0
push 0
push 5
push dword [esi]
call ebx
lea eax, [ebp - 0x82c]
push eax
push 1
push 0x404
push dword [esi]
mov edi, esi
call ebx
mov eax, dword [0x40d34c]
mov eax, dword [eax]
push 1
push 0
push dword [eax + 4]
call dbg.GetItemFullPath
add esp, 0xc
mov esi, eax
push eax
push 0
push 0x40b
push dword [edi]
call ebx
mov edi, dword [sym.imp.ucrtbase.dll_free]
push esi
call edi
add esp, 4
mov eax, dword [0x40d34c]
mov eax, dword [eax]
push 1
push 0
push dword [eax + 4]
call dbg.GetItemFullPath
add esp, 0xc
mov esi, eax
push eax
push 0
push 0x40b
mov eax, dword [0x40d79c]
push dword [eax]
call ebx
push esi
call edi
jmp 0x403e8c
call dbg.resize_frame_client
jmp case.0x403591.32825
push 0
push 2
push 0x40d61a
push ecx
call dword [sym.imp.user32.dll_WinHelpW]
push 0
call dword [sym.imp.user32.dll_PostQuitMessage]
add esp, 0x1820
pop esi
pop edi
pop ebx
pop ebp
jmp dword [sym.imp.user32.dll_DefWindowProcW]
test cx, cx
je case.0x403591.32825
mov eax, dword [0x40d34c]
mov eax, dword [eax]
push dword [eax]
call dword [sym.imp.user32.dll_SetFocus]
jmp case.0x403591.32825
cmp edi, 0xffff
ja case.0x403591.32825
mov edi, dword [0x40d798]
push 1
push dword [edi]
call dword [sym.imp.user32.dll_GetSubMenu]
cmp eax, esi
je 0x4036f7
push 3
push dword [edi]
call dword [sym.imp.user32.dll_GetSubMenu]
cmp eax, esi
jne 0x40379c
push esi
call dword [sym.imp.user32.dll_GetMenuItemCount]
cmp eax, 3
jl 0x4034b0
mov edi, dword [sym.imp.user32.dll_DeleteMenu]
mov ebx, dword [sym.imp.user32.dll_GetMenuItemCount]
push 0x400
push 2
push esi
call edi
push esi
call ebx
cmp eax, 2
jg 0x40349e
mov ecx, esi
xor edx, edx
call dbg.add_favourite_key_items
jmp 0x40379c
movzx ebx, si
mov word [ebp - 0x182c], 0
test esi, 0x100000
je 0x4034e8
push ecx
call dword [sym.imp.user32.dll_GetMenu]
cmp eax, edi
je 0x4034e8
cmp ebx, 2
mov eax, 5
cmove ebx, eax
mov eax, dword [0x40d010]
lea esi, [ebp - 0x182c]
push 0x64
push esi
push ebx
push dword [eax]
call dword [sym.imp.user32.dll_LoadStringW]
test eax, eax
je 0x403518
push 0xa
push esi
call dword [sym.imp.ucrtbase.dll_wcschr]
add esp, 8
test eax, eax
je 0x403518
mov word [eax], 0
mov eax, dword [0x40d79c]
push esi
push 0
push 0x40b
push dword [eax]
call dword [sym.imp.user32.dll_SendMessageW]
jmp case.0x403591.32825
mov word [ebp - 0x82c], 0
mov dword [ebp - 0x182c], 0xffffffff
mov esi, dword [0x40d79c]
lea eax, [ebp - 0x182c]
mov edi, dword [sym.imp.user32.dll_SendMessageW]
push eax
push 1
push 0x404
push dword [esi]
call edi
lea eax, [ebp - 0x82c]
push eax
push 0
push 0x40b
push dword [esi]
call edi
jmp case.0x403591.32825
movzx edx, si
lea ebx, [edx - 0x8002]
cmp ebx, 0x64
ja case.default.0x403591
mov edx, 1
jmp dword [ebx*4 + 0x40d404]
cmp eax, 0x800e
jne 0x4035c1
push 0
push dbg._find_dlgproc@16
push ecx
push 0x87
push 0
mov esi, ecx
call dword [sym.imp.user32.dll_DialogBoxParamW]
cmp eax, 1
jne case.0x403591.32825
mov ecx, esi
cmp word [0x4115d8], 0
je case.0x403591.32825
mov dword [ebp - 0x14], ecx
mov ebx, dword [0x40d34c]
mov eax, dword [ebx]
push 0
push 9
push 0x110a
push dword [eax + 4]
call dword [sym.imp.user32.dll_SendMessageW]
test eax, eax
je case.0x403591.32825
mov esi, eax
mov eax, dword [ebx]
push 1
push 0xffffffffffffffff
push 0x100c
push dword [eax + 8]
call dword [sym.imp.user32.dll_SendMessageW]
mov dword [ebp - 0x82c], eax
push 0x7f02
push 0
call dword [sym.imp.user32.dll_LoadCursorW]
push eax
call dword [sym.imp.user32.dll_SetCursor]
mov edi, eax
mov eax, dword [ebx]
lea ecx, [ebp - 0x82c]
push ecx
push dword [0x411010]
push 0x4115d8
push esi
push dword [eax + 4]
call dbg.FindNext
add esp, 0x14
mov esi, eax
push edi
call dword [sym.imp.user32.dll_SetCursor]
test esi, esi
je 0x403f07
mov eax, dword [ebx]
push esi
push 9
push 0x110b
push dword [eax + 4]
call dword [sym.imp.user32.dll_SendMessageW]
mov eax, dword [ebx]
push 1
push 0
push dword [eax + 4]
call dword [sym.imp.user32.dll_InvalidateRect]
mov eax, dword [ebx]
push dword [eax + 4]
call dword [sym.imp.user32.dll_UpdateWindow]
cmp dword [ebp - 0x82c], 0xffffffff
je 0x404091
mov dword [ebp - 0x1820], 0
mov dword [ebp - 0x181c], 3
mov eax, dword [ebx]
lea edi, [ebp - 0x182c]
mov esi, dword [sym.imp.user32.dll_SendMessageW]
push edi
push 0xffffffffffffffff
push 0x102b
push dword [eax + 8]
call esi
mov dword [ebp - 0x1820], 3
mov dword [ebp - 0x181c], 3
mov eax, dword [ebx]
push edi
push dword [ebp - 0x82c]
push 0x102b
push dword [eax + 8]
call esi
mov eax, dword [ebx]
push dword [eax + 8]
call dword [sym.imp.user32.dll_SetFocus]
jmp case.0x403591.32825
mov eax, dword [0x40d34c]
mov eax, dword [eax]
mov edi, dword [eax + 0xc]
push esi
call dword [sym.imp.user32.dll_GetMenuItemCount]
test edi, edi
je 0x403779
cmp eax, 9
jg 0x40379c
sub esp, 0x14
movaps xmm0, xmmword [0x40d360]
movups xmmword [esp + 4], xmm0
mov dword [esp], esi
mov edi, dword [sym.imp.user32.dll_InsertMenuW]
call edi
push 0x411558
push 0x8066
push 0x400
push 0
push esi
call edi
push 0x411518
push 0x8010
push 0x400
push 0
push esi
call edi
jmp 0x40379c
add edx, 0xffff7eb4
cmp edx, 0xa
ja case.0x403768.33103
jmp dword [edx*4 + 0x40d598]
mov edx, 7
jmp case.0x403591.32786
cmp eax, 0xa
jl 0x40379c
mov edi, dword [sym.imp.user32.dll_DeleteMenu]
mov ebx, dword [sym.imp.user32.dll_GetMenuItemCount]
push 0x400
push 0
push esi
call edi
push esi
call ebx
cmp eax, 9
jg 0x40378a
mov eax, dword [0x40d34c]
mov eax, dword [eax]
mov ebx, dword [eax + 4]
mov dword [ebp - 0x10], 0
push 0
push 9
push 0x110a
push ebx
call dword [sym.imp.user32.dll_SendMessageW]
mov edi, eax
lea eax, [ebp - 0x10]
push eax
push edi
push ebx
call sym._GetItemPath
add esp, 0xc
mov dword [ebp - 0x14], eax
mov eax, dword [0x40d34c]
mov eax, dword [eax]
push 2
push 0xffffffffffffffff
push 0x100c
push dword [eax + 8]
call dword [sym.imp.user32.dll_SendMessageW]
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x828], edi
mov dword [ebp - 0x82c], 0x58
mov dword [ebp - 0x820], 0x20
lea eax, [ebp - 0x82c]
push eax
push 0
push 0x113e
push ebx
call dword [sym.imp.user32.dll_SendMessageW]
movaps xmm0, xmmword [0x40d370]
movups xmmword [ebp - 0x182c], xmm0
mov dword [ebp - 0x1808], 0x411498
cmp dword [ebp - 0x80c], 0
je 0x403851
test byte [ebp - 0x824], 0x20
je 0x40385b
mov dword [ebp - 0x1808], 0x4114d8
jmp 0x40385b
mov dword [ebp - 0x1820], 3
lea eax, [ebp - 0x182c]
push eax
push 0
push 0x8151
push esi
call dword [sym.imp.user32.dll_SetMenuItemInfoW]
xor ebx, ebx
cmp dword [ebp - 0x18], 0xffffffff
sete bl
mov edi, dword [sym.imp.user32.dll_EnableMenuItem]
push ebx
push 0x8010
push esi
call edi
push ebx
push 0x8066
push esi
call edi
mov eax, dword [0x40d34c]
mov eax, dword [eax]
cmp dword [eax + 0xc], 0
je 0x4038b0
xor eax, eax
xor ecx, ecx
cmp dword [ebp - 0x18], 0
setle cl
cmovle eax, ebx
mov ebx, ecx
jmp 0x4038d0
cmp dword [ebp - 0x14], 0
je 0x4038c6
xor eax, eax
mov ecx, dword [ebp - 0x14]
cmp word [ecx], 0
mov ebx, 0
jne 0x4038d0
mov eax, 1
mov ebx, 1
push eax
push 0x800a
push esi
call edi
push ebx
push 0x800b
push esi
call edi
xor ebx, ebx
cmp dword [ebp - 0x14], 0
sete bl
push ebx
push 0x8011
push esi
call edi
push ebx
push 0x8012
push esi
call edi
push ebx
push 0x8013
push esi
call edi
push ebx
push 0x8014
push esi
call edi
push ebx
push 0x8156
push esi
call edi
push ebx
push 0x814c
push esi
call edi
push ebx
push 0x814e
push esi
call edi
push ebx
push 0x800d
push esi
call edi
xor eax, eax
cmp dword [ebp - 0x10], 0
sete al
push eax
push 0x8004
push esi
call edi
push esi
call dword [sym.imp.user32.dll_GetMenuItemCount]
xor ecx, ecx
cmp eax, 3
setl cl
push ecx
push 0x8005
push esi
call edi
push dword [ebp - 0x14]
jmp 0x403e86
mov edi, dword [0x40d34c]
mov eax, dword [edi]
push dword [eax + 8]
mov ebx, ecx
call dbg.GetValueName
add esp, 4
mov esi, eax
mov eax, dword [edi]
lea ecx, [ebp - 0x10]
push ecx
push 0
push dword [eax + 4]
call sym._GetItemPath
add esp, 0xc
mov edi, eax
push esi
push eax
push dword [ebp - 0x10]
push ebx
call dbg.ModifyValue
add esp, 0x10
mov ebx, dword [sym.imp.ucrtbase.dll_free]
push edi
call ebx
add esp, 4
push esi
call ebx
jmp 0x403e8c
lea esi, [ebp - 0x82c]
mov edx, esi
call dbg.InitOpenFileName
mov eax, dword [0x40d010]
lea edi, [ebp - 0x182c]
push 0x80
push edi
push 0x91
push dword [eax]
call dword [sym.imp.user32.dll_LoadStringW]
mov dword [ebp - 0x7fc], edi
mov dword [ebp - 0x7f0], 0x40d6f8
mov dword [ebp - 0x7f8], 0x80066
mov dword [ebp - 0x7e8], dbg._ExportRegistryFile_OFNHookProc@16
mov dword [ebp - 0x7e4], 0x83
push esi
call dword [sym.imp.comdlg32.dll_GetSaveFileNameW]
test eax, eax
je 0x403eae
push dword [ebp - 0x814]
push dword [ebp - 0x7ec]
push dword [ebp - 0x810]
call dbg.export_registry_key
add esp, 0xc
test eax, eax
jne case.0x403591.32825
test byte [0x411014], 1
je case.0x403591.32825
sub esp, 0x10
mov dword [esp + 0xc], str.Registry_export_failed._n
mov dword [esp + 8], str.ExportRegistryFile
mov dword [esp], 0
call sym._wine_dbg_log_1
add esp, 0x10
jmp case.0x403591.32825
mov edi, dword [0x40d34c]
mov eax, dword [edi]
lea ecx, [ebp - 0x10]
push ecx
push 0
push dword [eax + 4]
call sym._GetItemPath
add esp, 0xc
mov esi, eax
mov eax, dword [edi]
push dword [eax + 4]
call dbg.RefreshTreeView
add esp, 4
mov eax, dword [edi]
push 0
push esi
push dword [ebp - 0x10]
push dword [eax + 8]
call dbg.RefreshListView
add esp, 0x10
jmp 0x403e85
mov edx, 4
jmp case.0x403591.32786
mov eax, dword [0x40d79c]
mov edx, dword [eax]
call dbg.toggle_child
jmp case.0x403591.32825
mov dword [ebp - 0x14], ecx
call dword [sym.imp.user32.dll_GetFocus]
mov esi, eax
mov edi, dword [0x40d34c]
mov ecx, dword [edi]
mov eax, dword [ecx + 4]
cmp esi, eax
je 0x403eb6
cmp esi, dword [ecx + 8]
je 0x403f25
push esi
push eax
call dword [sym.imp.user32.dll_IsChild]
test eax, eax
jne 0x403b13
mov eax, dword [edi]
push esi
push dword [eax + 8]
call dword [sym.imp.user32.dll_IsChild]
test eax, eax
je case.0x403591.32825
push 0
push 0x2e
push 0x100
push esi
call dword [sym.imp.user32.dll_SendMessageW]
jmp case.0x403591.32825
push ecx
call dbg.ShowAboutBox
jmp 0x403e8c
push 0
push dbg._removefavorite_dlgproc@16
push ecx
push 0x86
push 0
call dword [sym.imp.user32.dll_DialogBoxParamW]
cmp eax, 1
jne case.0x403591.32825
lea eax, [ebp - 0x182c]
push eax
push 0x2001f
push 0
push str.SoftwareMicrosoftWindowsCurrentVersionAppletsRegeditFavorites
push 0x80000001
call dword [sym.imp.advapi32.dll_RegOpenKeyExW]
test eax, eax
jne case.0x403591.32825
push 0x4116d8
push dword [ebp - 0x182c]
call dword [sym.imp.advapi32.dll_RegDeleteValueW]
push dword [ebp - 0x182c]
call dword [sym.imp.advapi32.dll_RegCloseKey]
jmp case.0x403591.32825
push 0
push 0xb
push 0x40d61a
push ecx
call dword [sym.imp.user32.dll_WinHelpW]
jmp case.0x403591.32825
push ecx
call dword [sym.imp.user32.dll_DestroyWindow]
jmp case.0x403591.32825
mov edi, ecx
mov eax, dword [0x40d34c]
mov eax, dword [eax]
push 0
push 0
push dword [eax + 4]
call dbg.GetItemFullPath
add esp, 0xc
test eax, eax
je case.0x403591.32825
mov esi, eax
push 0
push dbg._addtofavorites_dlgproc@16
push edi
push 0x85
push 0
call dword [sym.imp.user32.dll_DialogBoxParamW]
cmp eax, 1
jne 0x403e85
sub esp, 0x24
lea eax, [ebp - 0x182c]
mov dword [esp + 0x1c], eax
movaps xmm0, xmmword [0x40d380]
movups xmmword [esp + 8], xmm0
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], 0
mov dword [esp + 4], str.SoftwareMicrosoftWindowsCurrentVersionAppletsRegeditFavorites
mov dword [esp], 0x80000001
call dword [sym.imp.advapi32.dll_RegCreateKeyExW]
test eax, eax
jne 0x403e85
xor ecx, ecx
mov eax, dword [ebp - 0x182c]
cmp word [esi + ecx], 0
lea ecx, [ecx + 2]
jne 0x403c48
push ecx
push esi
push 1
push 0
push 0x4116d8
push eax
call dword [sym.imp.advapi32.dll_RegSetValueExW]
push dword [ebp - 0x182c]
call dword [sym.imp.advapi32.dll_RegCloseKey]
jmp 0x403e85
mov esi, dword [0x40d34c]
mov eax, dword [esi]
lea ecx, [ebp - 0x182c]
push ecx
push dword [eax]
call dword [sym.imp.user32.dll_GetClientRect]
mov eax, dword [esi]
mov ebx, dword [eax + 0x10]
add ebx, dword [ebp - 0x182c]
mov ecx, dword [ebp - 0x1820]
mov edi, ecx
shr edi, 0x1f
add edi, ecx
sar edi, 1
mov dword [ebp - 0x82c], ebx
mov dword [ebp - 0x828], edi
lea ecx, [ebp - 0x82c]
push ecx
push dword [eax]
call dword [sym.imp.user32.dll_ClientToScreen]
test eax, eax
je case.0x403591.32825
push dword [ebp - 0x828]
push dword [ebp - 0x82c]
call dword [sym.imp.user32.dll_SetCursorPos]
push 0x7f84
push 0
call dword [sym.imp.user32.dll_LoadCursorW]
push eax
call dword [sym.imp.user32.dll_SetCursor]
mov eax, dword [esi]
movzx ecx, bx
shl edi, 0x10
or edi, ecx
push edi
push 0
push 0x201
jmp 0x403525
mov eax, dword [0x40d34c]
mov eax, dword [eax]
push 0
push 0
push dword [eax + 4]
mov esi, ecx
call dbg.GetItemFullPath
add esp, 0xc
test eax, eax
je case.0x403591.32825
mov ecx, esi
mov edx, eax
mov esi, eax
call dbg.CopyKeyName
jmp 0x403e85
mov ebx, dword [0x40d34c]
mov eax, dword [ebx]
lea edx, [ebp - 0x10]
push edx
push 0
push dword [eax + 4]
mov edi, ecx
call sym._GetItemPath
add esp, 0xc
mov esi, eax
lea eax, [ebp - 0x182c]
push eax
push esi
push dword [ebp - 0x10]
push edi
call dbg.CreateKey
add esp, 0x10
test eax, eax
je 0x403e85
mov eax, dword [ebx]
lea ecx, [ebp - 0x182c]
push ecx
push 0
push dword [eax + 4]
call dbg.InsertNode
add esp, 0xc
test eax, eax
je 0x403e85
mov eax, dword [ebx]
push dword [eax + 4]
jmp 0x4040a2
mov edi, dword [0x40d34c]
mov eax, dword [edi]
lea ecx, [ebp - 0x10]
push ecx
push 0
push dword [eax + 4]
call sym._GetItemPath
add esp, 0xc
test eax, eax
je 0x403efd
mov esi, eax
cmp word [eax], 0
je 0x403dd1
call dword [sym.imp.user32.dll_GetFocus]
mov ecx, dword [edi]
cmp eax, dword [ecx + 4]
je 0x4040a1
call dword [sym.imp.user32.dll_GetFocus]
mov ecx, dword [edi]
cmp eax, dword [ecx + 8]
jne 0x403e85
push eax
jmp 0x403e7d
call dbg.ImportRegistryFile
jmp case.0x403591.32825
call dbg.PrintRegistryHive
jmp case.0x403591.32825
mov edx, 3
jmp case.0x403591.32786
mov edi, dword [0x40d34c]
mov eax, dword [edi]
mov esi, dword [sym.imp.user32.dll_SendMessageW]
push 0
push 9
push 0x110a
push dword [eax + 4]
call esi
mov ecx, dword [edi]
push eax
push 3
push 0x1102
push dword [ecx + 4]
call esi
jmp case.0x403591.32825
mov edx, 2
jmp case.0x403591.32786
mov edx, 0xb
mov eax, dword [0x40d34c]
mov eax, dword [eax]
mov edi, edx
lea edx, [ebp - 0x10]
push edx
push 0
push dword [eax + 4]
mov ebx, ecx
call sym._GetItemPath
add esp, 0xc
mov esi, eax
lea eax, [ebp - 0x182c]
push eax
push edi
push esi
push dword [ebp - 0x10]
push ebx
call dbg.CreateValue
add esp, 0x14
test eax, eax
je 0x403e85
mov eax, dword [0x40d34c]
mov eax, dword [eax]
push dword [eax + 8]
call dbg.StartValueRename
add esp, 4
push esi
call dword [sym.imp.ucrtbase.dll_free]
add esp, 4
xor eax, eax
add esp, 0x1820
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
push edi
push esi
push 0x111
push ecx
call dword [sym.imp.user32.dll_DefWindowProcW]
jmp 0x403e91
call dword [sym.imp.comdlg32.dll_CommDlgExtendedError]
jmp case.0x403591.32825
lea eax, [ebp - 0x10]
push eax
push 0
push esi
call sym._GetItemPath
add esp, 0xc
mov esi, eax
test eax, eax
je 0x404084
cmp word [esi], 0
je 0x404084
push esi
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call dbg.DeleteKey
add esp, 0xc
test eax, eax
je 0x403e85
mov eax, dword [edi]
push 0
push dword [eax + 4]
call dbg.DeleteNode
add esp, 8
jmp 0x403e85
push 0x10
call dword [sym.imp.user32.dll_MessageBeep]
jmp case.0x403591.32825
push 0x4115d8
push 0x804a
push 0x67
push 0x40
push dword [ebp - 0x14]
call dbg.messagebox
add esp, 0x14
jmp case.0x403591.32825
push 0
push 0
push 0x1032
push esi
call dword [sym.imp.user32.dll_SendMessageW]
test eax, eax
mov ecx, dword [ebp - 0x14]
je case.0x403591.32825
mov edx, 0x8049
cmp eax, 1
je 0x403f4f
mov edx, 0x804b
push edx
push 0x8048
push 0x34
push ecx
call dbg.messagebox
add esp, 0x10
cmp eax, 6
jne case.0x403591.32825
mov eax, dword [edi]
lea ecx, [ebp - 0x10]
push ecx
push 0
push dword [eax + 4]
call sym._GetItemPath
add esp, 0xc
mov dword [ebp - 0x18], eax
mov eax, dword [edi]
mov esi, dword [sym.imp.user32.dll_SendMessageW]
push 1
push 0xffffffffffffffff
push 0x100c
push dword [eax + 8]
call esi
mov dword [ebp - 0x20], eax
mov eax, dword [edi]
push 2
push 0xffffffffffffffff
push 0x100c
push dword [eax + 8]
call esi
cmp eax, 0xffffffff
je 0x4040ac
mov ebx, eax
jmp 0x403fd0
mov eax, dword [edi]
push 2
push 0xffffffffffffffff
push 0x100c
push dword [eax + 8]
call esi
mov ebx, eax
cmp eax, 0xffffffff
je 0x4040ac
mov eax, dword [edi]
push ebx
push dword [eax + 8]
call sym._GetItemText
add esp, 8
mov edi, eax
push eax
push dword [ebp - 0x18]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
call dbg.DeleteValue
add esp, 0x10
mov esi, eax
push edi
mov edi, dword [0x40d34c]
call dword [sym.imp.ucrtbase.dll_free]
add esp, 4
test esi, esi
je 0x4040ac
mov eax, dword [edi]
push 0
push ebx
push 0x1008
push dword [eax + 8]
mov esi, dword [sym.imp.user32.dll_SendMessageW]
call esi
test ebx, ebx
jne 0x403fb5
mov eax, dword [edi]
mov eax, dword [eax + 8]
sub esp, 0x18
movaps xmm0, xmmword [0x40d390]
movups xmmword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0x14], 0
call dbg.AddEntryToList
add esp, 0x18
cmp dword [ebp - 0x20], 0
jne 0x403fb5
mov dword [ebp - 0x181c], 1
mov dword [ebp - 0x1820], 1
mov eax, dword [edi]
lea ecx, [ebp - 0x182c]
push ecx
push 0
push 0x102b
push dword [eax + 8]
call esi
jmp 0x403fb5
push 0x10
call dword [sym.imp.user32.dll_MessageBeep]
jmp 0x403e85
mov eax, dword [ebx]
push dword [eax + 4]
call dword [sym.imp.user32.dll_SetFocus]
jmp case.0x403591.32825
push eax
call dbg.StartKeyRename
jmp 0x403e82
push dword [ebp - 0x18]
jmp 0x403e86