Function at 0x4a6008
Capabilities:
Copy file
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov ecx, 8
push 0
push 0
dec ecx
jne 0x4a6010
push ebx
push esi
mov ebx, eax
xor eax, eax
push ebp
push 0x4a63ca
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 8]
mov edx, 0x4a63e0
call fcn.00403c7c
lea eax, [ebp - 0xc]
mov edx, 0x4a63f0
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 0x4a63fc
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegSetValueA
lea eax, [ebp - 8]
mov edx, 0x4a6408
call fcn.00403c7c
lea eax, [ebp - 0xc]
mov edx, 0x4a63e0
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 0x4a63fc
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegSetValueA
mov dl, 1
mov eax, dword [0x46113c]
call fcn.0046123c
mov esi, eax
mov edx, 0x80000000
mov eax, esi
call fcn.004612dc
xor ecx, ecx
mov edx, 0x4a6418
mov eax, esi
call fcn.00461344
test al, al
je 0x4a60f9
lea ecx, [ebp - 0x10]
xor edx, edx
mov eax, esi
call fcn.0046170c
mov eax, esi
call fcn.004612ac
mov eax, esi
call fcn.00402f5c
push dword [ebx + 0x4ffac]
push 0x4a63f0
push 0x4a6430
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.00403f24
mov eax, dword [ebp - 0x10]
mov edx, 0x4a6440
call fcn.00403f74
jb 0x4a6143
mov eax, dword [ebp - 0x14]
call fcn.004094a8
test al, al
jne 0x4a6263
mov eax, dword [ebx + 0xa554]
call fcn.004094a8
test al, al
je 0x4a6188
push 0
mov eax, dword [ebp - 0x14]
call fcn.00404028
push eax
mov eax, dword [ebx + 0xa554]
call fcn.00404028
push eax
call sub.kernel32.dll_CopyFileA
test eax, eax
jne 0x4a6188
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, 0x4a63e0
call fcn.00403c7c
lea eax, [ebp - 0xc]
mov edx, 0x4a6440
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 0x4a6448
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegSetValueA
push 0xffffffffffffffff
mov eax, dword [ebx + 0xa58c]
call fcn.00404028
push eax
push dword [ebx + 0x4ffac]
push 0x4a6458
push 0x4a6468
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, 0x4a647c
mov edx, dword [ebx + 0x4ffac]
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.004507d8
mov eax, dword [ebp - 0x28]
lea edx, [ebp - 0x24]
call fcn.0040958c
lea eax, [ebp - 0x24]
mov edx, 0x4a647c
call fcn.00403e6c
mov eax, dword [ebp - 0x24]
call fcn.00404028
push eax
call sub.kernel32.dll_CopyFileA
lea eax, [ebp - 8]
mov edx, 0x4a63e0
call fcn.00403c7c
lea eax, [ebp - 0xc]
mov ecx, 0x4a6490
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 0x4a6494
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegSetValueA
lea eax, [ebp - 8]
mov edx, 0x4a63e0
call fcn.00403c7c
lea eax, [ebp - 0xc]
mov ecx, 0x4a64b0
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 0x4a64b4
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegSetValueA
lea eax, [ebp - 0x2c]
mov ecx, 0x4a64c8
mov edx, dword [ebx + 0x4ffa8]
call fcn.00403eb0
mov eax, dword [ebp - 0x2c]
call fcn.004094f4
lea eax, [ebp - 0x30]
mov ecx, 0x4a64dc
mov edx, dword [ebx + 0x4ffa8]
call fcn.00403eb0
mov eax, dword [ebp - 0x30]
call fcn.004094f4
lea eax, [ebp - 0x34]
mov ecx, 0x4a647c
mov edx, dword [ebx + 0x4ffac]
call fcn.00403eb0
mov eax, dword [ebp - 0x34]
call fcn.004094a8
test al, al
jne 0x4a63af
push 0
lea eax, [ebp - 0x38]
mov ecx, 0x4a647c
mov edx, dword [ebx + 0x4ffac]
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.004507d8
mov eax, dword [ebp - 0x40]
lea edx, [ebp - 0x3c]
call fcn.0040958c
lea eax, [ebp - 0x3c]
mov edx, 0x4a647c
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 0x4a63d1
lea eax, [ebp - 0x40]
mov edx, 0xf
call fcn.00403c08
ret