Function at 0x49c030
Capabilities:
Get common file path
Get session user name
Persist via run registry key

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x36
push 0
push 0
dec ecx
jne 0x49c038
push ebx
push esi
push edi
mov esi, 0x4c704c
xor eax, eax
push ebp
push 0x49c7de
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 4], 0x103
lea eax, [ebp - 8]
mov edx, dword [ebp - 4]
call fcn.004047a8
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 8]
call fcn.0040461c
push eax
call sub.advapi32.dll_GetUserNameA
push 0x4c6fdc
mov ecx, dword [ebp - 4]
dec ecx
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.0040467c
lea edx, [ebp - 0x11c]
xor eax, eax
call fcn.00402a2c
mov eax, dword [ebp - 0x11c]
lea edx, [ebp - 0x118]
call fcn.004097e0
mov edx, dword [ebp - 0x118]
mov eax, 0x4c706c
call fcn.004041a0
push 0x104
lea eax, [ebp - 0x114]
push eax
call sub.kernel32.dll_GetWindowsDirectoryA
lea eax, [ebp - 0x120]
lea edx, [ebp - 0x114]
mov ecx, 0x104
call fcn.004043cc
mov eax, dword [ebp - 0x120]
lea edx, [ebp - 0xc]
call fcn.00409834
mov eax, 0x4c7010
lea edx, [ebp - 0x114]
mov ecx, 0x104
call fcn.004043cc
lea edx, [ebp - 0x124]
mov eax, dword [0x4c7010]
call fcn.0040de38
mov edx, dword [ebp - 0x124]
mov eax, 0x4c7010
call fcn.004041a0
lea eax, [ebp - 0x128]
push eax
mov ecx, 0x49c7f4
mov edx, 0x49c80c
mov eax, 0x80000001
call fcn.0049b1d8
mov edx, dword [ebp - 0x128]
mov eax, 0x4c7018
call fcn.004041a0
lea eax, [ebp - 0x12c]
push eax
mov ecx, 0x49c858
mov edx, 0x49c80c
mov eax, 0x80000001
call fcn.0049b1d8
mov edx, dword [ebp - 0x12c]
mov eax, 0x4c701c
call fcn.004041a0
lea eax, [ebp - 0x130]
push eax
mov ecx, 0x49c868
mov edx, 0x49c80c
mov eax, 0x80000001
call fcn.0049b1d8
mov edx, dword [ebp - 0x130]
mov eax, 0x4c703c
call fcn.004041a0
lea eax, [ebp - 0x134]
push eax
mov ecx, 0x49c878
mov edx, 0x49c80c
mov eax, 0x80000001
call fcn.0049b1d8
mov edx, dword [ebp - 0x134]
mov eax, 0x4c7044
call fcn.004041a0
lea eax, [ebp - 0x138]
push eax
mov ecx, 0x49c888
mov edx, 0x49c80c
mov eax, 0x80000001
call fcn.0049b1d8
mov edx, dword [ebp - 0x138]
mov eax, 0x4c7040
call fcn.004041a0
lea eax, [ebp - 0x10]
push eax
mov ecx, 0x49c898
mov edx, 0x49c80c
mov eax, 0x80000001
call fcn.0049b1d8
push 0x4c7014
mov edx, dword [ebp - 0x10]
mov eax, 0x49c8a8
call fcn.0040975c
mov ecx, eax
mov edx, 1
mov eax, dword [ebp - 0x10]
call fcn.0040467c
lea eax, [ebp - 0x13c]
push eax
mov ecx, 0x49c8b4
mov edx, 0x49c8cc
mov eax, 0x80000002
call fcn.0049b1d8
mov edx, dword [ebp - 0x13c]
mov eax, 0x4c7020
call fcn.004041a0
lea eax, [ebp - 0x140]
push eax
mov ecx, 0x49c900
mov edx, 0x49c8cc
mov eax, 0x80000002
call fcn.0049b1d8
mov edx, dword [ebp - 0x140]
mov eax, 0x4c7024
call fcn.004041a0
lea eax, [ebp - 0x144]
push eax
mov ecx, 0x49c918
mov edx, 0x49c928
mov eax, 0x80000001
call fcn.0049b1d8
mov edx, dword [ebp - 0x144]
mov eax, 0x4c7030
call fcn.004041a0
mov eax, dword [0x4c7030]
call fcn.0040441c
test eax, eax
jne 0x49c2f1
lea eax, [ebp - 0x148]
push eax
mov ecx, 0x49c974
mov edx, 0x49c928
mov eax, 0x80000001
call fcn.0049b1d8
mov edx, dword [ebp - 0x148]
mov eax, 0x4c7030
call fcn.004041a0
lea eax, [ebp - 0x14c]
push eax
mov ecx, 0x49c918
mov edx, 0x49c928
mov eax, 0x80000002
call fcn.0049b1d8
mov edx, dword [ebp - 0x14c]
mov eax, 0x4c7034
call fcn.004041a0
mov eax, dword [0x4c7034]
call fcn.0040441c
test eax, eax
jne 0x49c355
lea eax, [ebp - 0x150]
push eax
mov ecx, 0x49c988
mov edx, 0x49c928
mov eax, 0x80000002
call fcn.0049b1d8
mov edx, dword [ebp - 0x150]
mov eax, 0x4c7034
call fcn.004041a0
lea edx, [ebp - 0x154]
mov eax, dword [ebp - 0x10]
call fcn.0040de38
mov edx, dword [ebp - 0x154]
lea eax, [ebp - 0x10]
call fcn.004041e4
mov eax, 0x4c7060
mov ecx, 0x49c9a0
mov edx, dword [ebp - 0x10]
call fcn.00404468
mov eax, 0x4c705c
mov ecx, 0x49c9c0
mov edx, dword [ebp - 0x10]
call fcn.00404468
mov eax, dword [0x4c7060]
call fcn.004094ec
test al, al
jne 0x49c3ad
mov eax, dword [0x4c7060]
call fcn.00409510
mov eax, dword [0x4c705c]
call fcn.004094ec
test al, al
jne 0x49c3c5
mov eax, dword [0x4c705c]
call fcn.00409510
mov eax, esi
mov ecx, 0x49c9e0
mov edx, dword [ebp - 0x10]
call fcn.00404468
lea eax, [ebp - 0x158]
mov ecx, 0x49c9fc
mov edx, dword [esi]
call fcn.00404468
mov ecx, dword [ebp - 0x158]
mov dl, 1
mov eax, dword [0x437140]
call fcn.004371f0
mov ebx, eax
push 0
lea eax, [ebp - 8]
push eax
mov ecx, 0x49ca14
mov edx, 0x49ca24
mov eax, ebx
mov edi, dword [eax]
call dword [edi]
mov al, byte [0x49ca30]
push eax
lea eax, [ebp - 0x15c]
push eax
mov ecx, 0x49c8a8
mov edx, 0x49ca3c
mov eax, dword [ebp - 8]
call fcn.0040e654
mov edx, dword [ebp - 0x15c]
lea eax, [ebp - 8]
call fcn.004041e4
mov eax, esi
mov edx, dword [ebp - 8]
call fcn.00404424
mov eax, ebx
call fcn.004032fc
lea eax, [ebp - 0x160]
mov ecx, 0x49ca48
mov edx, dword [esi]
call fcn.00404468
mov eax, dword [ebp - 0x160]
call fcn.004094dc
test al, al
je 0x49c4cf
mov dword [0x4c7048], 3
mov eax, 0x4c7054
mov ecx, 0x49ca48
mov edx, dword [esi]
call fcn.00404468
mov eax, 0x4c7058
mov ecx, 0x49ca60
mov edx, dword [esi]
call fcn.00404468
lea edx, [ebp - 0x164]
mov eax, dword [0x4c7018]
call fcn.0040de38
push dword [ebp - 0x164]
push 0x49ca7c
push dword [ebp - 8]
push 0x49caa8
mov eax, 0x4c7050
mov edx, 4
call fcn.004044dc
jmp 0x49c50c
mov dword [0x4c7048], 2
mov eax, 0x4c7054
mov ecx, 0x49cab8
mov edx, dword [esi]
call fcn.00404468
mov eax, 0x4c7058
mov ecx, 0x49cad0
mov edx, dword [esi]
call fcn.00404468
mov eax, 0x4c7050
mov ecx, 0x49caa8
mov edx, dword [esi]
call fcn.00404468
lea edx, [ebp - 0x168]
mov eax, dword [0x4c7018]
call fcn.0040de38
mov edx, dword [ebp - 0x168]
mov eax, 0x4c7018
call fcn.004041a0
lea edx, [ebp - 0x16c]
mov eax, dword [0x4c7014]
call fcn.0040de38
mov edx, dword [ebp - 0x16c]
mov eax, 0x4c7014
call fcn.004041a0
lea edx, [ebp - 0x170]
mov eax, dword [0x4c701c]
call fcn.0040de38
mov edx, dword [ebp - 0x170]
mov eax, 0x4c701c
call fcn.004041a0
lea edx, [ebp - 0x174]
mov eax, dword [0x4c7020]
call fcn.0040de38
mov edx, dword [ebp - 0x174]
mov eax, 0x4c7020
call fcn.004041a0
lea edx, [ebp - 0x178]
mov eax, dword [0x4c7024]
call fcn.0040de38
mov edx, dword [ebp - 0x178]
mov eax, 0x4c7024
call fcn.004041a0
lea edx, [ebp - 0x17c]
mov eax, dword [0x4c703c]
call fcn.0040de38
mov edx, dword [ebp - 0x17c]
mov eax, 0x4c703c
call fcn.004041a0
lea edx, [ebp - 0x180]
mov eax, dword [0x4c703c]
call fcn.004087e8
mov edx, dword [ebp - 0x180]
mov eax, 0x49caec
call fcn.00404760
test eax, eax
jne 0x49c5ff
mov eax, 0x4c703c
mov edx, 0x49cafc
call fcn.00404424
lea edx, [ebp - 0x184]
mov eax, dword [0x4c7044]
call fcn.0040de38
mov edx, dword [ebp - 0x184]
mov eax, 0x4c7044
call fcn.004041a0
lea edx, [ebp - 0x188]
mov eax, dword [0x4c7040]
call fcn.0040de38
mov edx, dword [ebp - 0x188]
mov eax, 0x4c7040
call fcn.004041a0
lea edx, [ebp - 0x18c]
mov eax, dword [0x4c7030]
call fcn.0040de38
mov edx, dword [ebp - 0x18c]
mov eax, 0x4c7030
call fcn.004041a0
lea edx, [ebp - 0x190]
mov eax, dword [0x4c7034]
call fcn.0040de38
mov edx, dword [ebp - 0x190]
mov eax, 0x4c7034
call fcn.004041a0
lea edx, [ebp - 0x198]
mov eax, 0x49cb14
call fcn.0040ee90
mov eax, dword [ebp - 0x198]
lea edx, [ebp - 0x194]
call fcn.0049cf80
mov edx, dword [ebp - 0x194]
mov eax, 0x4c7028
call fcn.004041a0
lea edx, [ebp - 0x1a0]
mov eax, 0x49cb20
call fcn.0040ee90
mov eax, dword [ebp - 0x1a0]
lea edx, [ebp - 0x19c]
call fcn.0049cf80
mov edx, dword [ebp - 0x19c]
mov eax, 0x4c702c
call fcn.004041a0
mov eax, dword [0x4c7028]
call fcn.0040441c
cmp eax, 3
jge 0x49c72a
lea eax, [ebp - 0x1a4]
mov ecx, 0x49cb30
mov edx, dword [0x4c7018]
call fcn.00404468
mov eax, dword [ebp - 0x1a4]
call fcn.004094ec
test al, al
je 0x49c72a
mov eax, 0x4c7028
mov ecx, 0x49cb30
mov edx, dword [0x4c7018]
call fcn.00404468
mov eax, dword [0x4c702c]
call fcn.0040441c
cmp eax, 3
jge 0x49c773
lea eax, [ebp - 0x1a8]
mov ecx, 0x49cb40
mov edx, dword [0x4c7018]
call fcn.00404468
mov eax, dword [ebp - 0x1a8]
call fcn.004094ec
test al, al
je 0x49c773
mov eax, 0x4c702c
mov ecx, 0x49cb40
mov edx, dword [0x4c7018]
call fcn.00404468
lea edx, [ebp - 0x1ac]
mov eax, dword [0x4c7028]
call fcn.0040de38
mov edx, dword [ebp - 0x1ac]
mov eax, 0x4c7028
call fcn.004041a0
lea edx, [ebp - 0x1b0]
mov eax, dword [0x4c702c]
call fcn.0040de38
mov edx, dword [ebp - 0x1b0]
mov eax, 0x4c702c
call fcn.004041a0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x49c7e5
lea eax, [ebp - 0x1b0]
mov edx, 0x27
call fcn.00404170
lea eax, [ebp - 0x10]
mov edx, 3
call fcn.00404170
ret