Function at 0x417c11
Capabilities:
Copy file
Persist via run registry key
Set file attributes
Set registry value

Disassembly:
mov eax, 0x43e3de
call fcn.004311b8
mov eax, 0x1c08
call fcn.004318e0
push ebx
push esi
push edi
mov dword [ebp - 0x1c], ecx
call fcn.00401046
mov esi, eax
xor ebx, ebx
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x120b]
mov byte [ebp - 0x120c], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, esi
mov dword [ebp - 0x28], esi
stosb byte es:[edi], al
call fcn.00420168
test eax, eax
jne 0x417d9c
lea ecx, [ebp - 0x40]
call fcn.0040197c
push dword [0x4497f8]
lea eax, [ebp - 0x120c]
mov dword [ebp - 4], ebx
push 0x4507e0
push eax
call fcn.00429de4
lea eax, [ebp - 0x120c]
push ebx
push eax
push 0x44f900
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x120c]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [ebp - 0x120c]
lea ecx, [ebp - 0x40]
push eax
call fcn.00401de8
xor eax, eax
lea edi, [ebp - 0xa3]
mov byte [ebp - 0xa4], bl
push dword [0x44ff1c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0xa4]
push str._04x
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0xe0c]
push eax
lea eax, [ebp - 0xa0c]
push eax
push 0x44f900
call fcn.00429ba3
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0xa0c]
push eax
lea eax, [ebp - 0xe0c]
push eax
call fcn.00429de4
lea eax, [ebp - 0xe0c]
push str..ini
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x60b]
mov byte [ebp - 0x60c], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0xa4]
push eax
lea eax, [ebp - 0x60c]
push 0x4507e0
push eax
call fcn.00429de4
lea eax, [ebp - 0x60c]
push str..ini
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x60c]
push ebx
push eax
lea eax, [ebp - 0xe0c]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x60c]
lea ecx, [ebp - 0x40]
push eax
call fcn.00401de8
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.004019a9
jmp 0x417dae
lea eax, [ebp - 0x120c]
push 0x44f900
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x1814]
push 0x104
push eax
push ebx
push dword [0x4406c4]
lea ecx, [esi + 0x4030]
push dword [0x440694]
call fcn.004073eb
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], ebx
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x160b]
mov byte [ebp - 0x160c], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp - 0x20]
mov dword [ebp - 4], 1
sub eax, ebx
je 0x417e1f
dec eax
je 0x417e0b
dec eax
jne 0x417e31
push str.SoftwareMicrosoftWindowsCurrentVersionRun
jmp 0x417e10
push str.SoftwareMicrosoftWindowsCurrentVersionRunOnceEx
lea eax, [ebp - 0x160c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x417e3b
lea eax, [ebp - 0x160c]
push str.SoftwareMicrosoftWindowsCurrentVersionRunOnce
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [ebp - 0x20], 3
je 0x4182f4
lea eax, [ebp - 0x160c]
push 0xf003f
push eax
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x14]
call fcn.00410c09
test eax, eax
jne 0x4182f4
mov ecx, 0xff
lea edi, [ebp - 0x60b]
mov byte [ebp - 0x60c], bl
push dword [ebp + 8]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x60c]
push eax
call fcn.00430cf0
cmp dword [ebp + 0xc], ebx
pop ecx
pop ecx
je 0x417e9a
lea eax, [ebp - 0x60c]
push str._AFTERREBOOT1
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0xa0b]
mov byte [ebp - 0xa0c], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esi + 0x14cc]
dec eax
je 0x417f08
dec eax
je 0x417efa
dec eax
je 0x417edc
dec eax
je 0x417ed5
dec eax
je 0x417ece
push 0x44dbd0
jmp 0x417f0d
push 0x4491b4
jmp 0x417f0d
push 0x4491b0
jmp 0x417f0d
lea eax, [esi + 0x14d0]
push eax
push str._j_s
lea eax, [ebp - 0xa0c]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x417f1c
lea eax, [esi + 0x14d0]
push eax
push str._f_s
jmp 0x417ee8
push 0x44891c
lea eax, [ebp - 0xa0c]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
pop ecx
pop ecx
push 0x104
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.00431a20
add esp, 0xc
mov ecx, esi
call fcn.00420168
test eax, eax
je 0x417f4e
lea eax, [ebp - 0x20c]
push 0x44919c
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0xe0b]
mov byte [ebp - 0xe0c], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, esi
stosb byte es:[edi], al
call fcn.0041edd6
push eax
lea eax, [ebp - 0xe0c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, esi
call fcn.00420168
test eax, eax
je 0x417fc4
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x38], ebx
jne 0x417fc4
lea eax, [ebp - 0x20c]
mov ecx, esi
push eax
lea eax, [ebp - 0x60c]
push eax
push 0x4507e0
call fcn.0041eea9
push eax
lea eax, [ebp - 0xa0c]
push dword [0x44ff1c]
push eax
lea eax, [ebp - 0xe0c]
push eax
push str.__s___k__s__l_d__t__s___e__s___w__v__s___s
jmp 0x417ff8
lea eax, [ebp - 0x20c]
mov ecx, esi
push eax
lea eax, [ebp - 0x60c]
push eax
push 0x4507e0
call fcn.0041eea9
push eax
lea eax, [ebp - 0xa0c]
push dword [0x44ff1c]
push eax
lea eax, [ebp - 0xe0c]
push eax
push str.__s___s__l_d__t__s___e__s___v__s___s
lea eax, [ebp - 0x1c14]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x24
push 1
pop edi
cmp dword [ebp - 0x20], edi
jne 0x418060
lea eax, [ebp - 0x160c]
push str.0001
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp + 0xc]
mov dword [ebp + 8], ebx
push eax
lea eax, [ebp + 8]
push eax
push ebx
push 0xf003f
push ebx
push ebx
lea eax, [ebp - 0x160c]
push ebx
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp eax, ebx
jne 0x418060
cmp dword [ebp - 0x14], ebx
je 0x41805a
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x14], eax
lea eax, [ebp + 0xb]
push edi
push eax
lea eax, [ebp - 0x1c14]
push eax
lea ecx, [ebp - 0x108]
call fcn.004014ff
lea eax, [ebp + 0xf]
push edi
push eax
lea eax, [ebp - 0x60c]
push eax
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 2
call fcn.004014ff
lea eax, [ebp - 0x21]
push edi
push eax
mov ecx, esi
mov byte [ebp - 4], 3
call fcn.0041eea9
push eax
lea ecx, [ebp - 0xb8]
call fcn.004014ff
lea eax, [ebp - 0xd]
push edi
push eax
push 0x4507e0
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 4
call fcn.004014ff
cmp dword [ebp - 0xac], ebx
mov byte [ebp - 4], 5
je 0x4180ea
lea eax, [ebp - 0x68]
lea ecx, [ebp - 0xb8]
push eax
call fcn.0041abbc
lea ecx, [ebp - 0x68]
call fcn.0040191f
cmp dword [ebp - 0x84], ebx
je 0x418109
lea eax, [ebp - 0x68]
lea ecx, [ebp - 0x90]
push eax
call fcn.0041abbc
lea ecx, [ebp - 0x68]
call fcn.0040191f
mov dword [ebp - 0x18], ebx
push 0xf003f
push str.SoftwareMicrosoftWindowsCurrentVersion
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 6
call fcn.00410c09
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jne 0x418270
lea ecx, [ebp - 0xb8]
call fcn.004016f0
push eax
mov dword [ebp - 0x1c], eax
call esi
inc eax
push eax
push dword [ebp - 0x1c]
push 1
push ebx
push str._IS_T_
push dword [ebp - 0x18]
call edi
lea ecx, [ebp - 0x90]
call fcn.004016f0
push eax
mov dword [ebp - 0x1c], eax
call esi
inc eax
push eax
push dword [ebp - 0x1c]
push 1
push ebx
push str._IS_E_
push dword [ebp - 0x18]
call edi
cmp dword [ebp - 0xd4], ebx
je 0x4181ac
lea ecx, [ebp - 0xe0]
call fcn.004016f0
push eax
mov dword [ebp - 0x1c], eax
call esi
inc eax
push eax
push dword [ebp - 0x1c]
push 1
push ebx
push str._IS_V_
push dword [ebp - 0x18]
call edi
cmp dword [ebp - 0x18], ebx
je 0x4181bd
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x18], ebx
lea eax, [ebp - 0xd]
push 1
push eax
push str._IS_T_
lea ecx, [ebp - 0x68]
call fcn.0041aaac
lea eax, [ebp - 0x68]
lea ecx, [ebp - 0x108]
push eax
lea eax, [ebp - 0xb8]
push eax
mov byte [ebp - 4], 7
call fcn.0040bb02
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 6
call fcn.0040191f
lea eax, [ebp - 0xd]
push 1
push eax
push str._IS_E_
lea ecx, [ebp - 0x68]
call fcn.0041aaac
lea eax, [ebp - 0x68]
lea ecx, [ebp - 0x108]
push eax
lea eax, [ebp - 0x90]
push eax
mov byte [ebp - 4], 8
call fcn.0040bb02
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 6
call fcn.0040191f
cmp dword [ebp - 0xd4], ebx
je 0x418270
lea eax, [ebp - 0xd]
push 1
push eax
push str._IS_V_
lea ecx, [ebp - 0x68]
call fcn.0041aaac
lea eax, [ebp - 0x68]
lea ecx, [ebp - 0x108]
push eax
lea eax, [ebp - 0xe0]
push eax
mov byte [ebp - 4], 9
call fcn.0040bb02
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 6
call fcn.0040191f
lea ecx, [ebp - 0x108]
call fcn.004016f0
push eax
mov dword [ebp - 0x1c], eax
call esi
inc eax
push eax
push dword [ebp - 0x1c]
push 1
push ebx
push str.ISSetup
push dword [ebp - 0x14]
call edi
cmp dword [ebp - 0x14], ebx
je 0x4182a4
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x18], ebx
je 0x4182b5
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x18], ebx
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 4
call fcn.0040191f
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 3
call fcn.0040191f
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 2
call fcn.0040191f
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 1
call fcn.0040191f
mov esi, dword [ebp - 0x28]
xor eax, eax
lea edi, [ebp - 0x33]
mov byte [ebp - 0x34], bl
push 0x104
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosb byte es:[edi], al
lea eax, [ebp - 0x1710]
lea edi, [esi + 0x8bc]
push eax
push ebx
push dword [0x4406a4]
lea ecx, [esi + 0x4030]
push edi
call fcn.004073eb
cmp dword [esi + 0x1d0c], ebx
jne 0x418336
cmp eax, 1
je 0x418336
cmp eax, 2
jne 0x4183a9
push 4
lea eax, [ebp - 0x34]
push 0x448520
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [ebp - 0x88]
call fcn.00402156
lea eax, [ebp - 0x120c]
lea ecx, [ebp - 0x88]
push eax
mov byte [ebp - 4], 0xa
call fcn.0040219e
lea eax, [ebp - 0x34]
lea ecx, [ebp - 0x88]
push eax
push dword [0x4406a4]
push edi
call fcn.004021dd
lea ecx, [ebp - 0x88]
call fcn.004021ca
push 1
lea ecx, [ebp - 0x78]
mov byte [ebp - 4], 0xb
call fcn.00402a86
lea ecx, [ebp - 0x88]
mov byte [ebp - 4], 1
call fcn.004033a4
cmp dword [ebp - 0x20], 3
je 0x4183c9
cmp dword [0x450be8], ebx
je 0x4183be
call fcn.0042a307
jmp 0x4183c9
push 0x453
call fcn.00429669
pop ecx
cmp dword [ebp - 0x14], ebx
je 0x4183d7
push dword [ebp - 0x14]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 8