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

Disassembly:
mov eax, 0x3084
call fcn.004a5d20
mov eax, dword [0x4c4004]
xor eax, esp
mov dword [esp + 0x3080], eax
push ebx
push ebp
push esi
push edi
mov edi, dword [sym.imp.user32.dll_GetDlgItem]
mov ebp, ecx
push 0xf000
push ebp
push 0x102c
push 0x29c5
push dword [0x4def88]
mov dword [esp + 0x28], ebp
call edi
mov ebx, dword [sym.imp.user32.dll_SendMessageW]
push eax
call ebx
mov esi, eax
mov dword [esp + 0x1090], 0
push 0x7fc
lea eax, [esp + 0x1098]
shr esi, 0xc
push 0
push eax
dec esi
call fcn.0048e770
add esp, 0xc
mov dword [esp + 0x5c], 4
lea eax, [esp + 0x1090]
mov dword [esp + 0x6c], 0x400
mov dword [esp + 0x68], eax
lea eax, [esp + 0x54]
push eax
push ebp
push 0x1073
push 0x29c5
push dword [0x4def88]
call edi
push eax
call ebx
mov ebx, dword [sym.imp.SHLWAPI.dll_StrRStrIW]
lea eax, [esp + 0x1090]
push 0x4b77ec
push 0
push eax
call ebx
test eax, eax
jne 0x45a469
push 0x4b77f4
push eax
lea eax, [esp + 0x1098]
push eax
call ebx
neg eax
sbb eax, eax
inc eax
jmp 0x45a46b
xor eax, eax
cmp esi, eax
jne 0x45a476
xor eax, eax
jmp 0x45aae2
push 0x7fc
lea eax, [esp + 0x898]
mov dword [esp + 0x894], 0
push 0
push eax
call fcn.0048e770
push 0x7fc
lea eax, [esp + 0xa4]
mov dword [esp + 0xa0], 0
push 0
push eax
call fcn.0048e770
add esp, 0x18
mov dword [esp + 0x20], 4
lea eax, [esp + 0x890]
mov dword [esp + 0x30], 0x400
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x18]
push eax
push ebp
push 0x1073
push 0x29c5
push dword [0x4def88]
call edi
push eax
call dword [sym.imp.user32.dll_SendMessageW]
mov ebp, dword [sym.imp.SHLWAPI.dll_StrCpyW]
lea eax, [esp + 0x890]
push eax
lea eax, [esp + 0x94]
push eax
call ebp
mov edi, dword [sym.imp.SHLWAPI.dll_StrChrW]
lea eax, [esp + 0x90]
push 0x7c
push eax
call edi
mov ebx, eax
lea eax, [esp + 0x90]
test esi, esi
jne 0x45a62b
test ebx, ebx
jne 0x45a5bc
push 0x5c
push ebx
push eax
call dword [sym.imp.SHLWAPI.dll_StrRChrW]
mov esi, eax
test esi, esi
je 0x45aadf
lea eax, [esp + 0x90]
sub esi, eax
and esi, 0xfffffffe
cmp esi, 0x800
jae 0x45aafb
xor eax, eax
push 0x7fc
push eax
mov word [esp + esi + 0x98], ax
mov dword [esp + 0x1898], eax
lea eax, [esp + 0x189c]
push eax
call fcn.0048e770
add esp, 0xc
lea eax, [esp + 0x92]
add eax, esi
push eax
lea eax, [esp + 0x1894]
push eax
call ebp
mov esi, dword [sym.imp.SHLWAPI.dll_StrCatW]
lea eax, [esp + 0x90]
push 0x4b77ec
push eax
call esi
lea eax, [esp + 0x1890]
jmp 0x45a73d
mov esi, ebx
sub esi, eax
and esi, 0xfffffffe
cmp esi, 0x800
jae 0x45aafb
xor eax, eax
push 0x7fc
push eax
mov word [esp + esi + 0x98], ax
mov dword [esp + 0x1098], eax
lea eax, [esp + 0x109c]
push eax
call fcn.0048e770
add esp, 0xc
lea eax, [esp + 0x92]
add eax, esi
push eax
lea eax, [esp + 0x1094]
push eax
call ebp
mov esi, dword [sym.imp.SHLWAPI.dll_StrCatW]
lea eax, [esp + 0x90]
push 0x4b77f4
push eax
call esi
lea eax, [esp + 0x1090]
jmp 0x45a73d
push 0x7c
push eax
call edi
test eax, eax
jne 0x45a6c4
push 0x4b77ec
push eax
lea eax, [esp + 0x98]
push eax
call dword [sym.imp.SHLWAPI.dll_StrRStrIW]
mov esi, eax
test esi, esi
je 0x45aadf
lea eax, [esp + 0x90]
sub esi, eax
and esi, 0xfffffffe
cmp esi, 0x800
jae 0x45aafb
xor eax, eax
push 0x7fc
push eax
mov word [esp + esi + 0x98], ax
mov dword [esp + 0x2098], eax
lea eax, [esp + 0x209c]
push eax
call fcn.0048e770
add esp, 0xc
lea eax, [esp + 0x92]
add eax, esi
push eax
lea eax, [esp + 0x2094]
push eax
call ebp
lea eax, [esp + 0x2090]
push eax
lea eax, [esp + 0x94]
push eax
call dword [sym.imp.SHLWAPI.dll_StrCatW]
jmp 0x45a748
push 0x7fc
lea eax, [esp + 0x2898]
mov dword [esp + 0x2894], 0
push 0
push eax
call fcn.0048e770
lea eax, [esp + 0x9c]
mov esi, ebx
sub esi, eax
add esp, 0xc
and esi, 0xfffffffe
lea eax, [esp + 0x92]
add eax, esi
push eax
lea eax, [esp + 0x2894]
push eax
call ebp
add esi, 0xfffffffe
cmp esi, 0x800
jae 0x45aafb
xor eax, eax
mov word [esp + esi + 0x90], ax
lea eax, [esp + 0x90]
mov esi, dword [sym.imp.SHLWAPI.dll_StrCatW]
push 0x4b77fc
push eax
call esi
lea eax, [esp + 0x2890]
push eax
lea eax, [esp + 0x94]
push eax
call esi
lea eax, [esp + 0x90]
mov dword [esp + 0x20], 4
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x18]
push 0x1074
push 0x29c5
push dword [0x4def88]
call dword [sym.imp.user32.dll_GetDlgItem]
push eax
call dword [sym.imp.user32.dll_SendMessageW]
test ebx, ebx
jne 0x45a8b5
push 0x5c
lea eax, [esp + 0x894]
push eax
call edi
test eax, eax
je 0x45aadf
lea ecx, [esp + 0x890]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 0x800
jae 0x45aafb
xor ecx, ecx
mov word [esp + eax + 0x890], cx
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x10]
push ecx
push 0xf013f
lea ecx, [esp + 0x89a]
add eax, ecx
lea ecx, [esp + 0x898]
push ebx
push eax
call fcn.004784a0
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x45aadf
push 0x5c
lea eax, [esp + 0x94]
push eax
call edi
mov edi, eax
test edi, edi
je 0x45aadf
lea eax, [esp + 0x90]
sub edi, eax
and edi, 0xfffffffe
cmp edi, 0x800
jae 0x45aafb
xor eax, eax
lea ecx, [esp + 0x90]
push eax
mov word [esp + edi + 0x94], ax
mov dword [esp + 0x18], eax
lea eax, [esp + 0x18]
push eax
push ebx
push 0xf013f
push ebx
push ebx
lea eax, [esp + 0xaa]
add eax, edi
push ebx
push eax
call fcn.004784a0
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x45aadf
push eax
push dword [esp + 0x18]
push eax
push dword [esp + 0x1c]
call dword [sym.imp.SHLWAPI.dll_SHCopyKeyW]
push dword [esp + 0x10]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [esp + 0x14]
call esi
push 0x4adc80
push ebx
push ebx
lea esi, [esp + 0x89e]
push ebx
lea ecx, [esp + 0x8a0]
add esi, edi
call fcn.004784a0
mov edx, esi
mov ecx, eax
call fcn.00476870
add esp, 0x10
lea eax, [ebx + 1]
jmp 0x45aae2
push 0x7fc
lea eax, [esp + 0x1098]
mov dword [esp + 0x1094], 0
push 0
push eax
call fcn.0048e770
push 0x7fc
lea eax, [esp + 0x18a4]
mov dword [esp + 0x18a0], 0
push 0
push eax
call fcn.0048e770
add esp, 0x18
lea eax, [esp + 0x890]
push 0x7c
push 0
push eax
call dword [sym.imp.SHLWAPI.dll_StrRChrW]
test eax, eax
je 0x45aadf
lea ecx, [esp + 0x890]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 0x800
jae 0x45aafb
xor ecx, ecx
mov word [esp + eax + 0x890], cx
lea ecx, [esp + 0x892]
add eax, ecx
push eax
lea eax, [esp + 0x1094]
push eax
call ebp
push 0x5c
lea eax, [esp + 0x894]
push eax
call edi
test eax, eax
je 0x45aadf
lea ecx, [esp + 0x890]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 0x800
jae 0x45aafb
xor ecx, ecx
push ecx
mov word [esp + eax + 0x894], cx
mov dword [esp + 0x14], ecx
lea ecx, [esp + 0x14]
push ecx
push 0
push 0xf013f
push 0
push 0
lea ecx, [esp + 0x8aa]
add eax, ecx
lea ecx, [esp + 0x8a8]
push 0
push eax
call fcn.004784a0
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
push eax
call ebx
test eax, eax
jne 0x45aadf
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x400
push eax
lea eax, [esp + 0x1894]
push eax
push 0
push 0
lea eax, [esp + 0x10a0]
push eax
push dword [esp + 0x24]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x45aadf
lea eax, [esp + 0x1090]
push eax
push dword [esp + 0x14]
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
push dword [esp + 0x10]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push 0x7c
lea eax, [esp + 0x94]
push eax
call edi
test eax, eax
je 0x45aadf
lea ecx, [esp + 0x90]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 0x800
jae 0x45aafb
xor ecx, ecx
mov word [esp + eax + 0x90], cx
lea eax, [esp + 0x90]
push 0x5c
push eax
call edi
test eax, eax
je 0x45aadf
lea ecx, [esp + 0x90]
sub eax, ecx
and eax, 0xfffffffe
cmp eax, 0x800
jae 0x45aafb
xor ecx, ecx
push ecx
mov word [esp + eax + 0x94], cx
lea ecx, [esp + 0x14]
push ecx
push 0
push 0xf013f
push 0
push 0
lea ecx, [esp + 0xaa]
add eax, ecx
lea ecx, [esp + 0xa8]
push 0
push eax
call fcn.004784a0
push eax
call ebx
test eax, eax
jne 0x45aadf
lea eax, [esp + 0x1890]
push eax
call dword [sym.imp.kernel32.dll_lstrlenW]
add eax, eax
push eax
lea eax, [esp + 0x1894]
push eax
push 1
push 0
lea eax, [esp + 0x10a0]
push eax
push dword [esp + 0x24]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push dword [esp + 0x10]
call esi
mov eax, 1
jmp 0x45aae2
or eax, 0xffffffff
mov ecx, dword [esp + 0x3090]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0048d815
add esp, 0x3084
ret
call fcn.0048d945
int3