Function at 0x45a117
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x520f78
push fcn.0045ee40
mov eax, dword fs:[0]
push eax
add esp, 0xffffff04
push ebx
push esi
push edi
lea edi, [ebp - 0x10c]
mov ecx, 0x3d
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
mov eax, dword [0x52301c]
xor dword [ebp - 8], eax
xor eax, ebp
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov byte [ebp - 0x101], 0
mov ecx, 0x528033
call fcn.00453170
mov dword [ebp - 0x38], 0
mov dword [ebp - 4], 0
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x10c], 3
ja case.default.0x45a110
mov ecx, dword [ebp - 0x10c]
jmp dword [ecx*4 + 0x45a3e8]
mov esi, esp
lea eax, [ebp - 0x2c]
push eax
mov byte [ebp - 0x101], 1
lea ecx, [ebp - 0x20]
push ecx
push 0
push 0xf003f
push 0
push 0
push 0
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp esi, esp
call fcn.00453224
test eax, eax
je case.0x45a110.1
jmp case.default.0x45a110
mov byte [ebp - 0x101], 1
mov esi, esp
lea eax, [ebp - 0x20]
push eax
push 0x2001f
push 0
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp esi, esp
call fcn.00453224
test eax, eax
je 0x45a185
jmp case.default.0x45a110
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x10c], 0
jbe 0x45a24a
cmp dword [ebp - 0x10c], 2
jbe 0x45a1b2
cmp dword [ebp - 0x10c], 4
je 0x45a206
jmp 0x45a24a
cmp byte [ebp - 0x101], 0
jne 0x45a1c8
push 0x45a3e2
call fcn.00451753
add esp, 4
mov eax, dword [ebp + 0x18]
push eax
call fcn.00451609
add esp, 4
add eax, 1
mov esi, esp
push eax
mov ecx, dword [ebp + 0x18]
push ecx
mov edx, dword [ebp + 0x14]
push edx
push 0
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x20]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp esi, esp
call fcn.00453224
test eax, eax
jne 0x45a204
mov dword [ebp - 0x38], 1
jmp 0x45a24a
cmp byte [ebp - 0x101], 0
jne 0x45a21c
push 0x45a3e2
call fcn.00451753
add esp, 4
mov esi, esp
push 4
lea eax, [ebp + 0x1c]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
push 0
mov edx, dword [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x20]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp esi, esp
call fcn.00453224
test eax, eax
jne 0x45a24a
mov dword [ebp - 0x38], 1
jmp case.default.0x45a110
mov byte [ebp - 0x101], 1
mov esi, esp
lea eax, [ebp - 0x20]
push eax
push 0x2001f
push 0
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp esi, esp
call fcn.00453224
test eax, eax
je 0x45a281
jmp case.default.0x45a110
cmp byte [ebp - 0x101], 0
jne 0x45a297
push 0x45a3e2
call fcn.00451753
add esp, 4
mov esi, esp
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x20]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyA]
cmp esi, esp
call fcn.00453224
test eax, eax
jne 0x45a2b9
mov dword [ebp - 0x38], 1
jmp case.default.0x45a110
mov byte [ebp - 0x101], 1
mov esi, esp
lea eax, [ebp - 0x20]
push eax
push 0x2001f
push 0
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
cmp esi, esp
call fcn.00453224
test eax, eax
je 0x45a2ea
jmp case.default.0x45a110
cmp byte [ebp - 0x101], 0
jne 0x45a300
push 0x45a3e2
call fcn.00451753
add esp, 4
mov esi, esp
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x20]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegDeleteValueA]
cmp esi, esp
call fcn.00453224
test eax, eax
jne case.default.0x45a110
mov dword [ebp - 0x38], 1
mov dword [ebp - 4], 0xfffffffe
call fcn.0045a330
jmp 0x45a36d
mov eax, dword [ebp - 0x38]
push edx
mov ecx, ebp
push eax
lea edx, [0x45a3a0]
call fcn.004533a5
pop eax
pop edx
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x10c
cmp ebp, esp
call fcn.00453224
mov esp, ebp
pop ebp
ret