Function at 0x412dfa
Capabilities:
Contain obfuscated stackstrings
Copy file
Persist via run registry key
Set file attributes
Set registry value

Disassembly:
mov eax, 0x430551
call fcn.00423e18
mov eax, 0x1c5c
call fcn.00424530
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.004199e4
test eax, eax
mov esi, 0x43fa44
jne 0x412f81
lea ecx, [ebp - 0x44]
call fcn.004019b9
push dword [0x4392f0]
lea eax, [ebp - 0x1260]
mov dword [ebp - 4], ebx
push esi
push eax
call fcn.0041d431
lea eax, [ebp - 0x1260]
push ebx
push eax
push 0x43eb70
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 - 0x44]
push eax
call fcn.00401e2a
xor eax, eax
lea edi, [ebp - 0xa7]
mov byte [ebp - 0xa8], bl
push dword [0x43f18c]
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 - 0xa8]
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 0x43eb70
call fcn.0041d1f0
lea eax, [ebp - 0xa8]
push eax
lea eax, [ebp - 0xa60]
push eax
lea eax, [ebp - 0xe60]
push eax
call fcn.0041d431
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 - 0xa8]
push eax
lea eax, [ebp - 0x660]
push esi
push eax
call fcn.0041d431
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 - 0x44]
push eax
call fcn.00401e2a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x44]
call fcn.004019e6
jmp 0x412f93
lea eax, [ebp - 0x1260]
push 0x43eb70
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [ebp - 0x24]
push 0x104
lea ecx, [eax + 0x4024]
lea eax, [ebp - 0x1868]
push eax
push ebx
push dword [0x43269c]
push dword [0x43266c]
call fcn.0040729d
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 0x413007
dec eax
je 0x412ff3
dec eax
jne 0x413019
push str.SoftwareMicrosoftWindowsCurrentVersionRun
jmp 0x412ff8
push str.SoftwareMicrosoftWindowsCurrentVersionRunOnceEx
lea eax, [ebp - 0x1660]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x413023
lea eax, [ebp - 0x1660]
push str.SoftwareMicrosoftWindowsCurrentVersionRunOnce
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [ebp - 0x2c], 3
je 0x4136ba
lea eax, [ebp - 0x1660]
push 0xf003f
push eax
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x1c]
call fcn.0040f7b6
test eax, eax
jne 0x4136ba
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.00423950
cmp dword [ebp + 0xc], ebx
pop ecx
pop ecx
je 0x413082
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 0x4130f3
dec eax
je 0x4130e5
dec eax
je 0x4130c7
dec eax
je 0x4130c0
dec eax
je 0x4130b9
push 0x43ce60
jmp 0x4130f8
push 0x438cd0
jmp 0x4130f8
push 0x438ccc
jmp 0x4130f8
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 0x413107
lea eax, [edi + 0x14c0]
push eax
push str._f_s
jmp 0x4130d3
push 0x4386b0
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.00424670
add esp, 0xc
mov ecx, edi
call fcn.004199e4
test eax, eax
je 0x413139
lea eax, [ebp - 0x260]
push 0x438cb8
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.00418cd1
push eax
lea eax, [ebp - 0xe60]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, edi
call fcn.004199e4
test eax, eax
je 0x4131ae
mov eax, dword [ebp - 0x10]
cmp dword [eax + 0x38], ebx
jne 0x4131ae
lea eax, [ebp - 0x260]
mov ecx, edi
push eax
lea eax, [ebp - 0x660]
push eax
push esi
call fcn.00418d1f
push eax
lea eax, [ebp - 0xa60]
push dword [0x43f18c]
push eax
lea eax, [ebp - 0xe60]
push eax
push str.__s___k__s__l_d__t__s___e__s___w__v__s___s
jmp 0x4131de
lea eax, [ebp - 0x260]
mov ecx, edi
push eax
lea eax, [ebp - 0x660]
push eax
push esi
call fcn.00418d1f
push eax
lea eax, [ebp - 0xa60]
push dword [0x43f18c]
push eax
lea eax, [ebp - 0xe60]
push eax
push str.__s___s__l_d__t__s___e__s___v__s___s
lea eax, [ebp - 0x1c68]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x24
push 1
pop edi
cmp dword [ebp - 0x2c], edi
jne 0x413246
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 0x413246
cmp dword [ebp - 0x1c], ebx
je 0x413240
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], eax
lea eax, [ebp + 0xb]
push edi
push eax
lea eax, [ebp - 0x1c68]
push eax
lea ecx, [ebp - 0xbc]
call fcn.004014ff
mov ecx, dword [ebp - 0x24]
lea eax, [ebp + 0xf]
push edi
push eax
mov byte [ebp - 4], 2
call fcn.00418d1f
push eax
lea ecx, [ebp - 0x15c]
call fcn.004014ff
lea eax, [ebp - 0x2d]
push edi
push eax
push esi
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 3
call fcn.004014ff
lea eax, [ebp - 0x15]
push edi
push eax
lea eax, [ebp - 0x660]
push eax
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 4
call fcn.004014ff
mov dword [ebp - 0x20], ebx
push 0xf003f
push str.SoftwareMicrosoftWindowsCurrentVersion
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 6
call fcn.0040f7b6
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
jne 0x4135fb
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0xe4]
push 0x22
push eax
call fcn.00417336
push 0x22
push eax
lea eax, [ebp - 0x6c]
mov byte [ebp - 4], 7
push eax
call fcn.004173ca
mov eax, dword [eax + 8]
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x14], 0x432494
je 0x413315
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jne 0x41331f
mov dword [ebp - 0x10], ebx
jmp 0x413351
push dword [ebp - 0x14]
call esi
lea eax, [eax + eax + 2]
mov dword [ebp - 0x10], eax
add eax, 3
and al, 0xfc
call fcn.00424530
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 - 0x6c]
call fcn.0040195c
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 6
call fcn.0040195c
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0x6c]
push 0x22
push eax
call fcn.00417336
push 0x22
push eax
lea eax, [ebp - 0xe4]
mov byte [ebp - 4], 8
push eax
call fcn.004173ca
mov eax, dword [eax + 8]
add esp, 0x18
cmp eax, ebx
mov dword [ebp - 0x14], 0x432494
je 0x4133c0
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jne 0x4133ca
mov dword [ebp - 0x10], ebx
jmp 0x4133fc
push dword [ebp - 0x14]
call esi
lea eax, [eax + eax + 2]
mov dword [ebp - 0x10], eax
add eax, 3
and al, 0xfc
call fcn.00424530
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.0040195c
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 6
call fcn.0040195c
cmp dword [ebp - 0x88], ebx
je 0x4134a9
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0x14], 0x432494
cmp eax, ebx
je 0x41344e
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jne 0x413458
mov dword [ebp - 0x10], ebx
jmp 0x41348a
push dword [ebp - 0x14]
call esi
lea eax, [eax + eax + 2]
mov dword [ebp - 0x10], eax
add eax, 3
and al, 0xfc
call fcn.00424530
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 0x4134ba
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 - 0x6c]
call fcn.00415e3b
lea eax, [ebp - 0x15c]
mov byte [ebp - 4], 9
push eax
lea eax, [ebp - 0x134]
push 0x22
push eax
call fcn.00417336
push 0x22
push eax
lea eax, [ebp - 0xe4]
mov byte [ebp - 4], 0xa
push eax
call fcn.004173ca
add esp, 0x18
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0xb
push ecx
push eax
lea ecx, [ebp - 0xbc]
call fcn.0040b928
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 0xa
call fcn.0040195c
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 9
call fcn.0040195c
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 6
call fcn.0040195c
lea eax, [ebp - 0x15]
push 1
push eax
push str._IS_E_
lea ecx, [ebp - 0x6c]
call fcn.00415e3b
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 0xc
push eax
lea eax, [ebp - 0xe4]
push 0x22
push eax
call fcn.00417336
push 0x22
push eax
lea eax, [ebp - 0x134]
mov byte [ebp - 4], 0xd
push eax
call fcn.004173ca
add esp, 0x18
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 0xe
push ecx
push eax
lea ecx, [ebp - 0xbc]
call fcn.0040b928
lea ecx, [ebp - 0x134]
mov byte [ebp - 4], 0xd
call fcn.0040195c
lea ecx, [ebp - 0xe4]
mov byte [ebp - 4], 0xc
call fcn.0040195c
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 6
call fcn.0040195c
cmp dword [ebp - 0x88], ebx
je 0x4135fb
lea eax, [ebp - 0x15]
push 1
push eax
push str._IS_V_
lea ecx, [ebp - 0x6c]
call fcn.00415e3b
lea eax, [ebp - 0x6c]
lea ecx, [ebp - 0xbc]
push eax
lea eax, [ebp - 0x94]
push eax
mov byte [ebp - 4], 0xf
call fcn.0040b928
lea ecx, [ebp - 0x6c]
mov byte [ebp - 4], 6
call fcn.0040195c
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0x14], 0x432494
cmp eax, ebx
je 0x41360f
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], ebx
jne 0x413618
xor esi, esi
jmp 0x413641
push dword [ebp - 0x14]
call esi
lea eax, [eax + eax + 2]
mov dword [ebp - 0x10], eax
add eax, 3
and al, 0xfc
call fcn.00424530
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 - 0x1c], ebx
je 0x41366d
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x1c], ebx
cmp dword [ebp - 0x20], ebx
je 0x41367e
push dword [ebp - 0x20]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x20], ebx
lea ecx, [ebp - 0x94]
mov byte [ebp - 4], 4
call fcn.0040195c
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 3
call fcn.0040195c
lea ecx, [ebp - 0x15c]
mov byte [ebp - 4], 2
call fcn.0040195c
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 1
call fcn.0040195c
xor eax, eax
lea edi, [ebp - 0x37]
mov byte [ebp - 0x38], bl
mov esi, dword [ebp - 0x24]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosb byte es:[edi], al
lea eax, [ebp - 0x1764]
push 0x104
push eax
push ebx
push dword [0x43267c]
lea edi, [esi + 0x8ac]
lea ecx, [esi + 0x4024]
push edi
call fcn.0040729d
cmp dword [esi + 0x1cfc], ebx
jne 0x4136ff
cmp eax, 1
je 0x4136ff
cmp eax, 2
jne 0x413772
push 4
lea eax, [ebp - 0x38]
push 0x438c58
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [ebp - 0x8c]
call fcn.0040213f
lea eax, [ebp - 0x1260]
lea ecx, [ebp - 0x8c]
push eax
mov byte [ebp - 4], 0x10
call fcn.00402187
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0x8c]
push eax
push dword [0x43267c]
push edi
call fcn.004021c6
lea ecx, [ebp - 0x8c]
call fcn.004021b3
push 1
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 0x11
call fcn.00404274
lea ecx, [ebp - 0x8c]
mov byte [ebp - 4], 1
call fcn.0040334f
cmp dword [ebp - 0x2c], 3
je 0x413792
cmp dword [0x43fe4c], ebx
je 0x413787
call fcn.0041d954
jmp 0x413792
push 0x453
call fcn.0041ccb6
pop ecx
cmp dword [ebp - 0x1c], ebx
je 0x4137a0
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x1c74]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret 8