Function at 0x4081bc
Capabilities:
Copy file
Persist via run registry key
Read .ini file
Set file attributes
Set registry value

Disassembly:
mov eax, 0x41ea40
call fcn.00414644
mov eax, 0x2678
call fcn.00414820
push ebx
push esi
push edi
call fcn.00401046
mov dword [ebp - 0x24], eax
xor ebx, ebx
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x683]
mov byte [ebp - 0x684], bl
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x24]
stosw word es:[edi], ax
stosb byte es:[edi], al
call fcn.0040d425
test eax, eax
mov esi, 0x4276d4
jne 0x408331
lea ecx, [ebp - 0x40]
call fcn.004013aa
push dword [0x423f60]
lea eax, [ebp - 0x684]
mov dword [ebp - 4], ebx
push esi
push eax
call fcn.0040f30d
lea eax, [ebp - 0x684]
push ebx
push eax
push 0x4284b0
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x684]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea eax, [ebp - 0x684]
lea ecx, [ebp - 0x40]
push eax
call fcn.00401505
xor eax, eax
lea edi, [ebp - 0x53]
mov byte [ebp - 0x54], bl
push dword [0x428acc]
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 - 0x54]
push str._04x
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x2284]
push eax
lea eax, [ebp - 0x2684]
push eax
push 0x4284b0
call fcn.0040f15e
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x2684]
push eax
lea eax, [ebp - 0x2284]
push eax
call fcn.0040f30d
lea eax, [ebp - 0x2284]
push str..ini
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x1a83]
mov byte [ebp - 0x1a84], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x1a84]
push esi
push eax
call fcn.0040f30d
lea eax, [ebp - 0x1a84]
push str..ini
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x1a84]
push ebx
push eax
lea eax, [ebp - 0x2284]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea eax, [ebp - 0x1a84]
lea ecx, [ebp - 0x40]
push eax
call fcn.00401505
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x40]
call fcn.004013d7
jmp 0x408343
lea eax, [ebp - 0x684]
push 0x4284b0
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x684]
push eax
push ebx
push dword [0x41f5c8]
push dword [0x41f574]
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x18], ebx
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x1283]
mov byte [ebp - 0x1284], 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 0x4083aa
dec eax
je 0x408396
dec eax
jne 0x4083bc
push str.SoftwareMicrosoftWindowsCurrentVersionRun
jmp 0x40839b
push str.SoftwareMicrosoftWindowsCurrentVersionRunOnceEx
lea eax, [ebp - 0x1284]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x4083c6
lea eax, [ebp - 0x1284]
push str.SoftwareMicrosoftWindowsCurrentVersionRunOnce
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
cmp dword [ebp - 0x20], 3
je 0x408ab7
lea eax, [ebp - 0x1284]
push 0xf003f
push eax
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x18]
call fcn.00407bd1
test eax, eax
jne 0x408ab7
mov ecx, 0xff
lea edi, [ebp - 0xa83]
mov byte [ebp - 0xa84], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, 0x423bf8
push edi
push dword [ebp + 8]
call fcn.00415236
pop ecx
cmp eax, ebx
pop ecx
mov dword [ebp + 8], eax
je 0x408465
lea eax, [ebp - 0xa84]
push 0x4276d0
push eax
call fcn.00414020
pop ecx
pop ecx
push dword [ebp + 8]
test eax, eax
jne 0x408445
lea eax, [ebp - 0xa84]
push 0x423180
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x408461
lea eax, [ebp - 0xa84]
push eax
lea eax, [ebp - 0xa84]
push str._s_s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push edi
push ebx
jmp 0x408406
cmp dword [ebp + 0xc], ebx
je 0x40847c
lea eax, [ebp - 0xa84]
push str._AFTERREBOOT1
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0xe83]
mov byte [ebp - 0xe84], 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 + 0x1420]
dec eax
je 0x4084ed
dec eax
je 0x4084df
dec eax
je 0x4084c1
dec eax
je 0x4084ba
dec eax
je 0x4084b3
push 0x4276d0
jmp 0x4084f2
push 0x423be4
jmp 0x4084f2
push 0x423be0
jmp 0x4084f2
lea eax, [edi + 0x1424]
push eax
push str._j_s
lea eax, [ebp - 0xe84]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
jmp 0x408501
lea eax, [edi + 0x1424]
push eax
push str._f_s
jmp 0x4084cd
push 0x423478
lea eax, [ebp - 0xe84]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
pop ecx
pop ecx
push 0x104
lea eax, [ebp - 0x284]
push ebx
push eax
call fcn.00413fc0
add esp, 0xc
mov ecx, edi
call fcn.0040d425
test eax, eax
je 0x408533
lea eax, [ebp - 0x284]
push 0x423bcc
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x1e83]
mov byte [ebp - 0x1e84], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x1e84]
push 0x400
push eax
push dword [0x429384]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov edi, dword [ebp - 0x24]
mov ecx, edi
call fcn.0040d425
test eax, eax
lea eax, [ebp - 0x284]
mov ecx, edi
push eax
lea eax, [ebp - 0xa84]
push eax
push esi
je 0x4085a3
call fcn.0040cd95
push eax
lea eax, [ebp - 0xe84]
push dword [0x428acc]
push eax
lea eax, [ebp - 0x1e84]
push eax
push str.__s___k__s__l_d__t__s___e__s___w__v__s___s
jmp 0x4085c2
call fcn.0040cd95
push eax
lea eax, [ebp - 0xe84]
push dword [0x428acc]
push eax
lea eax, [ebp - 0x1e84]
push eax
push str.__s___s__l_d__t__s___e__s___v__s___s
lea eax, [ebp - 0x1684]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x24
cmp dword [ebp - 0x20], 1
jne 0x408628
lea eax, [ebp - 0x1284]
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 - 0x1284]
push ebx
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExA]
cmp eax, ebx
jne 0x408628
cmp dword [ebp - 0x18], ebx
je 0x408622
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp + 8]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1684]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 0x102
jle 0x408a7f
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp + 0xb]
push 1
push eax
lea eax, [ebp - 0x1684]
push eax
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 2
call fcn.0040a992
lea eax, [ebp + 0xf]
push 1
push eax
mov ecx, edi
mov byte [ebp - 4], 3
call fcn.0040cd95
push eax
lea ecx, [ebp - 0x158]
call fcn.0040a992
lea eax, [ebp - 0x25]
push 1
push eax
push esi
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 4
call fcn.0040a992
lea eax, [ebp - 0x11]
push 1
push eax
lea eax, [ebp - 0xa84]
push eax
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 5
call fcn.0040a992
mov dword [ebp - 0x1c], ebx
push 0xf003f
push str.SoftwareMicrosoftWindowsCurrentVersion
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 7
call fcn.00407bd1
test eax, eax
jne 0x4089c0
mov eax, dword [ebp - 0x150]
mov dword [ebp - 0x10], 0x41f5dc
cmp eax, ebx
je 0x4086ec
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jne 0x4086f5
xor esi, esi
jmp 0x408723
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [eax + eax + 2]
mov eax, edi
add eax, 3
and al, 0xfc
call fcn.00414820
mov esi, esp
push ebx
push ebx
push edi
push esi
push 0xffffffffffffffff
push dword [ebp - 0x10]
mov byte [esi], bl
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push esi
push 1
push ebx
push str._IS_T_
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov eax, dword [ebp - 0x100]
mov dword [ebp - 0x10], 0x41f5dc
cmp eax, ebx
je 0x408752
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jne 0x40875b
xor esi, esi
jmp 0x408789
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [eax + eax + 2]
mov eax, edi
add eax, 3
and al, 0xfc
call fcn.00414820
mov esi, esp
push ebx
push ebx
push edi
push esi
push 0xffffffffffffffff
push dword [ebp - 0x10]
mov byte [esi], bl
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push esi
push 1
push ebx
push str._IS_E_
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push 0x22
lea eax, [ebp - 0x130]
pop esi
push esi
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.0040ba0b
mov eax, dword [eax + 8]
add esp, 0xc
cmp eax, ebx
mov dword [ebp - 0x10], 0x41f5dc
je 0x4087cf
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jne 0x4087d8
xor edi, edi
jmp 0x408809
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax + eax + 2]
mov dword [ebp - 0x34], eax
add eax, 3
and al, 0xfc
call fcn.00414820
mov edi, esp
push ebx
push ebx
push dword [ebp - 0x34]
mov byte [edi], bl
push edi
push 0xffffffffffffffff
push dword [ebp - 0x10]
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
push edi
push 1
mov edi, str._IS_V_
push ebx
push edi
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
lea ecx, [ebp - 0x90]
call fcn.00407008
cmp dword [ebp - 0x1c], ebx
je 0x408841
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x1c], ebx
lea eax, [ebp - 0x11]
push 1
push eax
push str._IS_T_
lea ecx, [ebp - 0x68]
call fcn.0040a86f
lea eax, [ebp - 0x158]
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0xe0]
push esi
push eax
call fcn.0040ba9f
push esi
push eax
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 9
push eax
call fcn.0040ba0b
add esp, 0x18
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0xa
push ecx
push eax
lea ecx, [ebp - 0xb8]
call fcn.0040a94a
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 9
call fcn.00407008
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 8
call fcn.00407008
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 7
call fcn.00407008
lea eax, [ebp - 0x11]
push 1
push eax
push str._IS_E_
lea ecx, [ebp - 0x68]
call fcn.0040a86f
lea eax, [ebp - 0x108]
mov byte [ebp - 4], 0xb
push eax
lea eax, [ebp - 0x90]
push esi
push eax
call fcn.0040ba9f
push esi
push eax
lea eax, [ebp - 0xe0]
mov byte [ebp - 4], 0xc
push eax
call fcn.0040ba0b
add esp, 0x18
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 0xd
push ecx
push eax
lea ecx, [ebp - 0xb8]
call fcn.0040a94a
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 0xc
call fcn.00407008
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0xb
call fcn.00407008
lea ecx, [ebp - 0x68]
mov byte [ebp - 4], 7
call fcn.00407008
lea eax, [ebp - 0x11]
push 1
push eax
push edi
lea ecx, [ebp - 0x90]
call fcn.0040a86f
lea eax, [ebp - 0x130]
mov byte [ebp - 4], 0xe
push eax
lea eax, [ebp - 0x180]
push esi
push eax
call fcn.0040ba9f
push esi
push eax
lea eax, [ebp - 0xe0]
mov byte [ebp - 4], 0xf
push eax
call fcn.0040ba0b
add esp, 0x18
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 0x10
push ecx
push eax
lea ecx, [ebp - 0xb8]
call fcn.0040a94a
lea ecx, [ebp - 0xe0]
mov byte [ebp - 4], 0xf
call fcn.00407008
lea ecx, [ebp - 0x180]
mov byte [ebp - 4], 0xe
call fcn.00407008
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 7
call fcn.00407008
mov eax, dword [ebp - 0xb0]
mov dword [ebp - 0x10], 0x41f5dc
cmp eax, ebx
je 0x4089d4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], ebx
jne 0x4089dd
xor esi, esi
jmp 0x408a0b
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea edi, [eax + eax + 2]
mov eax, edi
add eax, 3
and al, 0xfc
call fcn.00414820
mov esi, esp
push ebx
push ebx
push edi
push esi
push 0xffffffffffffffff
push dword [ebp - 0x10]
mov byte [esi], bl
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
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 - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp dword [ebp - 0x1c], ebx
je 0x408a37
push dword [ebp - 0x1c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 5
call fcn.00407008
lea ecx, [ebp - 0x108]
mov byte [ebp - 4], 4
call fcn.00407008
lea ecx, [ebp - 0x158]
mov byte [ebp - 4], 3
call fcn.00407008
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 2
call fcn.00407008
mov byte [ebp - 4], 1
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x408aa6
lea eax, [ebp - 0x1684]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
lea eax, [ebp - 0x1684]
push eax
push 1
push ebx
push str.ISSetup
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
cmp dword [ebp - 0x18], ebx
je 0x408ab7
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0x18], ebx
xor eax, eax
lea edi, [ebp - 0x2f]
mov byte [ebp - 0x30], bl
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosb byte es:[edi], al
lea eax, [ebp - 0x684]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push eax
push ebx
push dword [0x41f5a4]
push dword [0x41f5b4]
call edi
mov esi, dword [ebp - 0x24]
cmp dword [esi + 0x2064], ebx
jne 0x408af3
cmp eax, 1
je 0x408af3
cmp eax, 2
jne 0x408b24
push 4
lea eax, [ebp - 0x30]
push 0x423b20
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x684]
push eax
lea eax, [ebp - 0x30]
push eax
push dword [0x41f5a4]
push dword [0x41f5b4]
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea ecx, [ebp - 0x684]
lea eax, [esi + 0x810]
push ecx
push ebx
push dword [0x41f5a4]
mov dword [ebp + 8], eax
push eax
call edi
cmp dword [esi + 0x1c60], ebx
jne 0x408b50
cmp eax, 1
je 0x408b50
cmp eax, 2
jne 0x408b7e
push 4
lea eax, [ebp - 0x30]
push 0x423b20
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [ebp - 0x684]
push eax
lea eax, [ebp - 0x30]
push eax
push dword [0x41f5a4]
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
cmp dword [ebp - 0x20], 3
je 0x408b9e
cmp dword [0x429380], ebx
je 0x408b93
call fcn.0040f733
jmp 0x408b9e
push 0x453
call fcn.0040ec81
pop ecx
cmp dword [ebp - 0x18], ebx
je 0x408bac
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x2690]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
leave
ret 8