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

Disassembly:
mov eax, 0x428501
call fcn.0041cfb0
mov eax, 0x1d60
call fcn.0041cf80
push ebx
push esi
push edi
mov dword [ebp - 0x10], ecx
call fcn.00401046
mov dword [ebp - 0x24], eax
xor ebx, ebx
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x125f]
mov byte [ebp - 0x1260], bl
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x24]
stosw word es:[edi], ax
stosb byte es:[edi], al
call fcn.00414747
test eax, eax
mov esi, 0x432d8c
jne 0x40cf4c
lea ecx, [ebp - 0x6c]
call fcn.00401535
push dword [0x42f2e8]
lea eax, [ebp - 0x1260]
mov dword [ebp - 4], ebx
push esi
push eax
call fcn.00416c2c
lea eax, [ebp - 0x1260]
push ebx
push eax
push 0x434e60
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x1260]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [ebp - 0x1260]
lea ecx, [ebp - 0x6c]
push eax
call fcn.004017bb
xor eax, eax
lea edi, [ebp - 0x4b]
mov byte [ebp - 0x4c], bl
push dword [0x43547c]
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 - 0x4c]
push str._04x
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0xe60]
push eax
lea eax, [ebp - 0xa60]
push eax
push 0x434e60
call fcn.004169eb
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0xa60]
push eax
lea eax, [ebp - 0xe60]
push eax
call fcn.00416c2c
lea eax, [ebp - 0xe60]
push str..ini
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x65f]
mov byte [ebp - 0x660], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x660]
push esi
push eax
call fcn.00416c2c
lea eax, [ebp - 0x660]
push str..ini
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x660]
push ebx
push eax
lea eax, [ebp - 0xe60]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x660]
lea ecx, [ebp - 0x6c]
push eax
call fcn.004017bb
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call fcn.00401562
jmp 0x40cf5e
lea eax, [ebp - 0x1260]
push 0x434e60
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [ebp - 0x24]
push 0x104
lea ecx, [eax + 0x3318]
lea eax, [ebp - 0x1d6c]
push eax
push ebx
push dword [0x429604]
push dword [0x4295cc]
call fcn.0040545b
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x1c], ebx
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x165f]
mov byte [ebp - 0x1660], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 4], 1
sub eax, ebx
je 0x40cfd2
dec eax
je 0x40cfbe
dec eax
jne 0x40cfe4
push str.SoftwareMicrosoftWindowsCurrentVersionRun
jmp 0x40cfc3
push str.SoftwareMicrosoftWindowsCurrentVersionRunOnceEx
lea eax, [ebp - 0x1660]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x40cfee
lea eax, [ebp - 0x1660]
push str.SoftwareMicrosoftWindowsCurrentVersionRunOnce
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [ebp - 0x2c], 3
je 0x40d6ef
lea eax, [ebp - 0x1660]
push 0xf003f
push eax
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x1c]
call fcn.00409d2d
test eax, eax
jne 0x40d6ef
mov ecx, 0xff
lea edi, [ebp - 0x65f]
mov byte [ebp - 0x660], bl
push dword [ebp + 8]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x660]
push eax
call fcn.0041c970
cmp dword [ebp + 0xc], ebx
pop ecx
pop ecx
je 0x40d04d
lea eax, [ebp - 0x660]
push str._AFTERREBOOT1
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0xa5f]
mov byte [ebp - 0xa60], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [ebp - 0x24]
mov eax, dword [edi + 0x14bc]
dec eax
je 0x40d0be
dec eax
je 0x40d0b0
dec eax
je 0x40d092
dec eax
je 0x40d08b
dec eax
je 0x40d084
push 0x432d70
jmp 0x40d0c3
push 0x42eba8
jmp 0x40d0c3
push 0x42eba4
jmp 0x40d0c3
lea eax, [edi + 0x14c0]
push eax
push str._j_s
lea eax, [ebp - 0xa60]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x40d0d2
lea eax, [edi + 0x14c0]
push eax
push str._f_s
jmp 0x40d09e
push 0x42e60c
lea eax, [ebp - 0xa60]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
pop ecx
pop ecx
push 0x104
lea eax, [ebp - 0x260]
push ebx
push eax
call fcn.0041cac0
add esp, 0xc
mov ecx, edi
call fcn.00414747
test eax, eax
je 0x40d104
lea eax, [ebp - 0x260]
push 0x42eb90
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0xe5f]
mov byte [ebp - 0xe60], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [ebp - 0x24]
mov ecx, edi
call fcn.00413a78
push eax
lea eax, [ebp - 0xe60]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, edi
call fcn.00414747
test eax, eax
je 0x40d179
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x38], ebx
jne 0x40d179
lea eax, [ebp - 0x260]
mov ecx, edi
push eax
lea eax, [ebp - 0x660]
push eax
push esi
call fcn.00413ac6
push eax
lea eax, [ebp - 0xa60]
push dword [0x43547c]
push eax
lea eax, [ebp - 0xe60]
push eax
push str.__s___k__s__l_d__t__s___e__s___w__v__s___s
jmp 0x40d1a9
lea eax, [ebp - 0x260]
mov ecx, edi
push eax
lea eax, [ebp - 0x660]
push eax
push esi
call fcn.00413ac6
push eax
lea eax, [ebp - 0xa60]
push dword [0x43547c]
push eax
lea eax, [ebp - 0xe60]
push eax
push str.__s___s__l_d__t__s___e__s___v__s___s
lea eax, [ebp - 0x1a60]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x24
push 1
pop edi
cmp dword [ebp - 0x2c], edi
jne 0x40d211
lea eax, [ebp - 0x1660]
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 - 0x1660]
push ebx
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp eax, ebx
jne 0x40d211
cmp dword [ebp - 0x1c], ebx
je 0x40d20b
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1a60]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 0x102
jle 0x40d6b8
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp + 0xb]
push edi
push eax
lea eax, [ebp - 0x1a60]
push eax
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 2
call fcn.004101a6
mov ecx, dword [ebp - 0x24]
lea eax, [ebp + 0xf]
push edi
push eax
mov byte [ebp - 4], 3
call fcn.00413ac6
push eax
lea ecx, [ebp - 0x15c]
call fcn.004101a6
lea eax, [ebp - 0x2d]
push edi
push eax
push esi
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 4
call fcn.004101a6
lea eax, [ebp - 0x15]
push edi
push eax
lea eax, [ebp - 0x660]
push eax
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 5
call fcn.004101a6
mov dword [ebp - 0x20], ebx
push 0xf003f
push str.SoftwareMicrosoftWindowsCurrentVersion
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 7
call fcn.00409d2d
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jne 0x40d604
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0xe4]
push 0x22
push eax
call fcn.004121bb
push 0x22
push eax
lea eax, [ebp - 0x94]
mov byte [ebp - 4], 8
push eax
call fcn.0041224f
mov eax, dword [eax + 8]
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x14], 0x429618
je 0x40d303
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jne 0x40d30d
mov dword [ebp - 0x10], ebx
jmp 0x40d33f
push dword [ebp - 0x14]
call esi
lea eax, [eax + eax + 2]
mov dword [ebp - 0x10], eax
add eax, 3
and al, 0xfc
call fcn.0041cf80
mov eax, esp
push ebx
push ebx
mov dword [ebp - 0x28], eax
push dword [ebp - 0x10]
mov byte [eax], bl
push eax
push 0xffffffffffffffff
push dword [ebp - 0x14]
push ebx
push ebx
call edi
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push dword [ebp - 0x10]
push 1
push ebx
push str._IS_T_
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
lea ecx, [ebp - 0x94]
call fcn.0040b85d
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 7
call fcn.0040b85d
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0x94]
push 0x22
push eax
call fcn.004121bb
push 0x22
push eax
lea eax, [ebp - 0xe4]
mov byte [ebp - 4], 9
push eax
call fcn.0041224f
mov eax, dword [eax + 8]
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x14], 0x429618
je 0x40d3b4
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jne 0x40d3be
mov dword [ebp - 0x10], ebx
jmp 0x40d3f0
push dword [ebp - 0x14]
call esi
lea eax, [eax + eax + 2]
mov dword [ebp - 0x10], eax
add eax, 3
and al, 0xfc
call fcn.0041cf80
mov eax, esp
push ebx
push ebx
mov dword [ebp - 0x28], eax
push dword [ebp - 0x10]
mov byte [eax], bl
push eax
push 0xffffffffffffffff
push dword [ebp - 0x14]
push ebx
push ebx
call edi
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push dword [ebp - 0x10]
push 1
push ebx
push str._IS_E_
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
lea ecx, [ebp - 0xe4]
call fcn.0040b85d
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 7
call fcn.0040b85d
cmp dword [ebp - 0xb0], ebx
je 0x40d4a0
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x14], 0x429618
cmp eax, ebx
je 0x40d445
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jne 0x40d44f
mov dword [ebp - 0x10], ebx
jmp 0x40d481
push dword [ebp - 0x14]
call esi
lea eax, [eax + eax + 2]
mov dword [ebp - 0x10], eax
add eax, 3
and al, 0xfc
call fcn.0041cf80
mov eax, esp
push ebx
push ebx
mov dword [ebp - 0x28], eax
push dword [ebp - 0x10]
mov byte [eax], bl
push eax
push 0xffffffffffffffff
push dword [ebp - 0x14]
push ebx
push ebx
call edi
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push dword [ebp - 0x10]
push 1
push ebx
push str._IS_V_
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp dword [ebp - 0x20], ebx
je 0x40d4b1
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x20], ebx
lea eax, [ebp - 0x15]
push 1
push eax
push str._IS_T_
lea ecx, [ebp - 0x94]
call fcn.00410084
lea eax, [ebp - 0x15c]
mov byte [ebp - 4], 0xa
push eax
lea eax, [ebp - 0x134]
push 0x22
push eax
call fcn.004121bb
push 0x22
push eax
lea eax, [ebp - 0xe4]
mov byte [ebp - 4], 0xb
push eax
call fcn.0041224f
add esp, 0x18
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0xc
push ecx
push eax
lea ecx, [ebp - 0x60]
call fcn.0041015e
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 0xb
call fcn.0040b85d
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0xa
call fcn.0040b85d
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 7
call fcn.0040b85d
lea eax, [ebp - 0x15]
push 1
push eax
push str._IS_E_
lea ecx, [ebp - 0x94]
call fcn.00410084
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0xd
push eax
lea eax, [ebp - 0xe4]
push 0x22
push eax
call fcn.004121bb
push 0x22
push eax
lea eax, [ebp - 0x134]
mov byte [ebp - 4], 0xe
push eax
call fcn.0041224f
add esp, 0x18
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 0xf
push ecx
push eax
lea ecx, [ebp - 0x60]
call fcn.0041015e
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0xe
call fcn.0040b85d
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 0xd
call fcn.0040b85d
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 7
call fcn.0040b85d
cmp dword [ebp - 0xb0], ebx
je 0x40d604
lea eax, [ebp - 0x15]
push 1
push eax
push str._IS_V_
lea ecx, [ebp - 0x94]
call fcn.00410084
lea eax, [ebp - 0x94]
lea ecx, [ebp - 0x60]
push eax
lea eax, [ebp - 0xbc]
push eax
mov byte [ebp - 4], 0x10
call fcn.0041015e
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 7
call fcn.0040b85d
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x14], 0x429618
cmp eax, ebx
je 0x40d615
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jne 0x40d61e
xor esi, esi
jmp 0x40d647
push dword [ebp - 0x14]
call esi
lea eax, [eax + eax + 2]
mov dword [ebp - 0x10], eax
add eax, 3
and al, 0xfc
call fcn.0041cf80
mov esi, esp
push ebx
push ebx
push dword [ebp - 0x10]
mov byte [esi], bl
push esi
push 0xffffffffffffffff
push dword [ebp - 0x14]
push ebx
push ebx
call edi
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push esi
push 1
push ebx
push str.ISSetup
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp dword [ebp - 0x20], ebx
je 0x40d673
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x20], ebx
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 5
call fcn.0040b85d
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 4
call fcn.0040b85d
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 3
call fcn.0040b85d
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 2
call fcn.0040b85d
mov byte [ebp - 4], 1
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x40d6de
lea eax, [ebp - 0x1a60]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
lea eax, [ebp - 0x1a60]
push eax
push edi
push ebx
push str.ISSetup
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp dword [ebp - 0x1c], ebx
je 0x40d6ef
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x1c], ebx
xor eax, eax
lea edi, [ebp - 0x37]
mov byte [ebp - 0x38], bl
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosb byte es:[edi], al
mov edi, 0x104
lea eax, [ebp - 0x1c68]
push edi
push eax
mov eax, dword [ebp - 0x24]
push ebx
push dword [0x4295e0]
lea ecx, [eax + 0x3318]
push dword [0x4295f0]
mov dword [ebp + 8], ecx
call fcn.0040545b
mov esi, dword [ebp - 0x24]
cmp dword [esi + 0x2100], ebx
jne 0x40d73a
cmp eax, 1
je 0x40d73a
cmp eax, 2
jne 0x40d7a3
push 4
lea eax, [ebp - 0x38]
push 0x42eb30
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [ebp - 0x58]
call fcn.00401ae9
lea eax, [ebp - 0x1260]
lea ecx, [ebp - 0x58]
push eax
mov byte [ebp - 4], 0x11
call fcn.00401b31
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0x58]
push eax
push dword [0x4295e0]
push dword [0x4295f0]
call fcn.00401b70
lea ecx, [ebp - 0x58]
call fcn.00401b5d
push 1
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0x12
call fcn.00402dee
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 1
call fcn.0040285f
lea ecx, [ebp - 0x1b64]
push edi
push ecx
mov ecx, dword [ebp + 8]
push ebx
lea eax, [esi + 0x8ac]
push dword [0x4295e0]
mov dword [ebp + 0xc], eax
push eax
call fcn.0040545b
cmp dword [esi + 0x1cfc], ebx
jne 0x40d7d6
cmp eax, 1
je 0x40d7d6
cmp eax, 2
jne 0x40d84e
push 4
lea eax, [ebp - 0x38]
push 0x42eb30
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [ebp - 0xb4]
call fcn.00401ae9
lea eax, [ebp - 0x1260]
lea ecx, [ebp - 0xb4]
push eax
mov byte [ebp - 4], 0x13
call fcn.00401b31
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0xb4]
push eax
push dword [0x4295e0]
push dword [ebp + 0xc]
call fcn.00401b70
lea ecx, [ebp - 0xb4]
call fcn.00401b5d
push 1
lea ecx, [ebp - 0xa4]
mov byte [ebp - 4], 0x14
call fcn.00402dee
lea ecx, [ebp - 0xb4]
mov byte [ebp - 4], 1
call fcn.0040285f
cmp dword [ebp - 0x2c], 3
je 0x40d86e
cmp dword [0x435d3c], ebx
je 0x40d863
call fcn.00417139
jmp 0x40d86e
push 0x453
call fcn.004164b1
pop ecx
cmp dword [ebp - 0x1c], ebx
je 0x40d87c
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x1d78]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret 8