Function at 0x4a5edc
Capabilities:
Copy file
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov ecx, 8
push 0
push 0
dec ecx
jne 0x4a5ee4
push ebx
push esi
mov ebx, eax
xor eax, eax
push ebp
push 0x4a629e
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 8]
mov edx, 0x4a62b4
call fcn.00403c7c
lea eax, [ebp - 0xc]
mov edx, 0x4a62c4
call fcn.00403c7c
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 8]
call fcn.00404028
push eax
push 0x80000000
call sub.advapi32.dll_RegCreateKeyA
push 0
mov eax, dword [ebp - 0xc]
call fcn.00404028
push eax
push 1
push 0x4a62d0
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegSetValueA
lea eax, [ebp - 8]
mov edx, 0x4a62dc
call fcn.00403c7c
lea eax, [ebp - 0xc]
mov edx, 0x4a62b4
call fcn.00403c7c
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 8]
call fcn.00404028
push eax
push 0x80000000
call sub.advapi32.dll_RegCreateKeyA
push 0
mov eax, dword [ebp - 0xc]
call fcn.00404028
push eax
push 1
push 0x4a62d0
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegSetValueA
mov dl, 1
mov eax, dword [0x461110]
call fcn.00461210
mov esi, eax
mov edx, 0x80000000
mov eax, esi
call fcn.004612b0
xor ecx, ecx
mov edx, 0x4a62ec
mov eax, esi
call fcn.00461318
test al, al
je 0x4a5fcd
lea ecx, [ebp - 0x10]
xor edx, edx
mov eax, esi
call fcn.004616e0
mov eax, esi
call fcn.00461280
mov eax, esi
call fcn.00402f5c
push dword [ebx + 0x4ff94]
push 0x4a62c4
push 0x4a6304
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.00403f24
mov eax, dword [ebp - 0x10]
mov edx, 0x4a6314
call fcn.00403f74
jb 0x4a6017
mov eax, dword [ebp - 0x14]
call fcn.0040947c
test al, al
jne 0x4a6137
mov eax, dword [ebx + 0xa53c]
call fcn.0040947c
test al, al
je 0x4a605c
push 0
mov eax, dword [ebp - 0x14]
call fcn.00404028
push eax
mov eax, dword [ebx + 0xa53c]
call fcn.00404028
push eax
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x4a605c
lea eax, [ebp - 0x18]
push eax
mov ecx, 3
mov edx, 1
mov eax, dword [ebp - 0x14]
call fcn.0040406c
lea eax, [ebp - 8]
mov edx, 0x4a62b4
call fcn.00403c7c
lea eax, [ebp - 0xc]
mov edx, 0x4a6314
call fcn.00403c7c
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 8]
call fcn.00404028
push eax
push 0x80000000
call sub.advapi32.dll_RegCreateKeyA
push 0x104
mov eax, dword [ebp - 0xc]
call fcn.00404028
push eax
push 1
push 0x4a631c
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegSetValueA
push 0xffffffffffffffff
mov eax, dword [ebx + 0xa574]
call fcn.00404028
push eax
push dword [ebx + 0x4ff94]
push 0x4a632c
push 0x4a633c
lea eax, [ebp - 0x1c]
mov edx, 3
call fcn.00403f24
mov eax, dword [ebp - 0x1c]
call fcn.00404028
push eax
call sub.kernel32.dll_CopyFileA
push 0
lea eax, [ebp - 0x20]
mov ecx, 0x4a6350
mov edx, dword [ebx + 0x4ff94]
call fcn.00403eb0
mov eax, dword [ebp - 0x20]
call fcn.00404028
push eax
lea edx, [ebp - 0x28]
mov eax, dword [0x4cf264]
mov eax, dword [eax]
call fcn.004507ac
mov eax, dword [ebp - 0x28]
lea edx, [ebp - 0x24]
call fcn.00409560
lea eax, [ebp - 0x24]
mov edx, 0x4a6350
call fcn.00403e6c
mov eax, dword [ebp - 0x24]
call fcn.00404028
push eax
call sub.kernel32.dll_CopyFileA
lea eax, [ebp - 8]
mov edx, 0x4a62b4
call fcn.00403c7c
lea eax, [ebp - 0xc]
mov ecx, 0x4a6364
mov edx, dword [ebp - 0x14]
call fcn.00403eb0
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 8]
call fcn.00404028
push eax
push 0x80000000
call sub.advapi32.dll_RegCreateKeyA
push 0x104
mov eax, dword [ebp - 0xc]
call fcn.00404028
push eax
push 1
push 0x4a6368
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegSetValueA
lea eax, [ebp - 8]
mov edx, 0x4a62b4
call fcn.00403c7c
lea eax, [ebp - 0xc]
mov ecx, 0x4a6384
mov edx, dword [ebp - 0x14]
call fcn.00403eb0
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 8]
call fcn.00404028
push eax
push 0x80000000
call sub.advapi32.dll_RegCreateKeyA
push 0x104
mov eax, dword [ebp - 0xc]
call fcn.00404028
push eax
push 1
push 0x4a6388
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegSetValueA
lea eax, [ebp - 0x2c]
mov ecx, 0x4a639c
mov edx, dword [ebx + 0x4ff90]
call fcn.00403eb0
mov eax, dword [ebp - 0x2c]
call fcn.004094c8
lea eax, [ebp - 0x30]
mov ecx, 0x4a63b0
mov edx, dword [ebx + 0x4ff90]
call fcn.00403eb0
mov eax, dword [ebp - 0x30]
call fcn.004094c8
lea eax, [ebp - 0x34]
mov ecx, 0x4a6350
mov edx, dword [ebx + 0x4ff94]
call fcn.00403eb0
mov eax, dword [ebp - 0x34]
call fcn.0040947c
test al, al
jne 0x4a6283
push 0
lea eax, [ebp - 0x38]
mov ecx, 0x4a6350
mov edx, dword [ebx + 0x4ff94]
call fcn.00403eb0
mov eax, dword [ebp - 0x38]
call fcn.00404028
push eax
lea edx, [ebp - 0x40]
mov eax, dword [0x4cf264]
mov eax, dword [eax]
call fcn.004507ac
mov eax, dword [ebp - 0x40]
lea edx, [ebp - 0x3c]
call fcn.00409560
lea eax, [ebp - 0x3c]
mov edx, 0x4a6350
call fcn.00403e6c
mov eax, dword [ebp - 0x3c]
call fcn.00404028
push eax
call sub.kernel32.dll_CopyFileA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a62a5
lea eax, [ebp - 0x40]
mov edx, 0xf
call fcn.00403c08
ret