Function at 0x454148
Capabilities:
Query or enumerate registry key
Set registry value

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x73c
mov eax, dword [0x46700c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor ebx, ebx
push edi
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], ebx
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], ebx
call fcn.00453d8d
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push 0x20119
push ebx
mov ebx, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
push 0x421e40
push 0x80000002
call ebx
test eax, eax
jne 0x45437d
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 0x80
mov esi, eax
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
push eax
push eax
push eax
push eax
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push esi
push dword [ebp - 0x724]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x454375
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push 0x20119
xor eax, eax
push eax
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push dword [ebp - 0x724]
inc esi
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 0x80
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], esi
call ebx
test eax, eax
jne 0x454375
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push 0x421ea4
push 4
pop esi
call fcn.00440126
pop ecx
pop ecx
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
lea ecx, reloc.ADVAPI32.dll_TraceMessage
call fcn.00452e09
test eax, eax
js 0x454350
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
lea eax, reloc.ADVAPI32.dll_TraceMessage
xor esi, esi
push eax
lea ecx, reloc.ADVAPI32.dll_TraceMessage
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], esi
call fcn.00453035
test eax, eax
je 0x454342
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push 0x421ed0
mov eax, 0x208
lea ecx, reloc.ADVAPI32.dll_TraceMessage
call fcn.0042c99c
pop ecx
pop ecx
push esi
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push esi
push 0x20106
push esi
push esi
push esi
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x454360
lea ecx, reloc.ADVAPI32.dll_TraceMessage
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, si
jne 0x4542bb
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push 1
push esi
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
push 0x421f34
push dword [ebp - 0x728]
call esi
lea ecx, reloc.ADVAPI32.dll_TraceMessage
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x734]
jne 0x4542f8
sub ecx, edx
sar ecx, 1
lea eax, [ecx*2 + 2]
push eax
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push 1
xor eax, eax
push eax
push 0x421f4c
push dword [ebp - 0x728]
call esi
push dword [ebp - 0x728]
call edi
push 0x421f70
push 4
call fcn.004400fc
jmp 0x454360
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push 0x421f84
jmp 0x454356
push eax
push 0x421fac
push 2
pop esi
call fcn.00440126
pop ecx
pop ecx
push dword [ebp - 0x72c]
call edi
mov esi, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
xor eax, eax
jmp 0x4541b2
push dword [ebp - 0x724]
call edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004655f1
leave
ret