Function at 0x408855
Capabilities:
Contain obfuscated stackstrings
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x90
push ebx
push esi
push edi
lea eax, [ebp + 8]
push 0xa
push eax
lea eax, [ebp - 0x70]
xor ebx, ebx
push eax
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
call fcn.00407828
add esp, 0xc
lea ecx, [ebp - 0x18]
call fcn.00401041
lea eax, [ebp - 0x18]
push eax
push ecx
mov ecx, esp
push str.New_Version_SHA256
call fcn.0040108c
lea eax, [ebp - 0x70]
push eax
call fcn.004078d3
add esp, 0xc
lea ecx, [ebp - 0x18]
call fcn.004010f0
test eax, eax
jne 0x40909a
lea ecx, [ebp - 0x1c]
call fcn.00401041
lea eax, [ebp - 0x1c]
push eax
push ecx
mov ecx, esp
push str.New_Version
call fcn.0040108c
lea eax, [ebp - 0x70]
push eax
call fcn.004078d3
add esp, 0xc
lea ecx, [ebp - 0x28]
call fcn.00401041
lea ecx, [ebp - 0x10]
call fcn.00401041
lea eax, [ebp - 0x28]
push eax
push ecx
mov ecx, esp
push str.New_Version_Base64_len
call fcn.0040108c
lea eax, [ebp - 0x70]
push eax
call fcn.004078d3
add esp, 0xc
lea ecx, [ebp - 0x1c]
call fcn.004010e7
lea eax, [ebp - 0x10]
push eax
push ecx
mov ecx, esp
push str.New_Version_len
call fcn.0040108c
lea eax, [ebp - 0x70]
push eax
call fcn.004078d3
add esp, 0xc
lea ecx, [ebp - 0x38]
call fcn.00401041
lea ecx, [ebp - 0x14]
call fcn.00401041
lea ecx, [ebp - 0x20]
call fcn.00401041
lea ecx, [ebp - 0x40]
call fcn.00401041
lea eax, [ebp - 0x58]
lea ecx, [ebp - 0x40]
push eax
mov byte [ebp - 0x58], 0x62
mov byte [ebp - 0x57], 0x61
mov byte [ebp - 0x56], 0x73
mov byte [ebp - 0x55], 0x65
mov byte [ebp - 0x54], 0x5f
mov byte [ebp - 0x53], 0x36
mov byte [ebp - 0x52], 0x34
mov byte [ebp - 0x51], 0x5f
mov byte [ebp - 0x50], 0x63
mov byte [ebp - 0x4f], 0x6f
mov byte [ebp - 0x4e], 0x64
mov byte [ebp - 0x4d], 0x65
mov byte [ebp - 0x4c], bl
call fcn.00401168
lea ecx, [ebp - 0x34]
call fcn.00401041
lea eax, [ebp - 0x58]
mov byte [ebp - 0x58], 0x74
mov byte [ebp - 0x57], 0x69
mov byte [ebp - 0x56], 0x6d
mov byte [ebp - 0x55], 0x65
mov byte [ebp - 0x54], 0x5f
mov byte [ebp - 0x53], 0x62
mov byte [ebp - 0x52], 0x61
mov byte [ebp - 0x51], 0x73
mov byte [ebp - 0x50], 0x65
mov byte [ebp - 0x4f], 0x5f
mov byte [ebp - 0x4e], 0x36
mov byte [ebp - 0x4d], 0x34
mov byte [ebp - 0x4c], bl
push eax
lea ecx, [ebp - 0x34]
call fcn.00401168
lea ecx, [ebp - 0x3c]
call fcn.00401041
lea eax, [ebp - 0x58]
lea ecx, [ebp - 0x3c]
push eax
mov byte [ebp - 0x58], 0x74
mov byte [ebp - 0x57], 0x69
mov byte [ebp - 0x56], 0x6d
mov byte [ebp - 0x55], 0x65
mov byte [ebp - 0x54], 0x5f
mov byte [ebp - 0x53], 0x62
mov byte [ebp - 0x52], 0x61
mov byte [ebp - 0x51], 0x73
mov byte [ebp - 0x50], 0x65
mov byte [ebp - 0x4f], 0x5f
mov byte [ebp - 0x4e], 0x36
mov byte [ebp - 0x4d], 0x34
mov byte [ebp - 0x4c], 0x5f
mov byte [ebp - 0x4b], 0x32
mov byte [ebp - 0x4a], bl
call fcn.00401168
lea eax, [ebp - 0x14]
push eax
push ecx
lea eax, [ebp - 0x34]
mov ecx, esp
push eax
call fcn.0040104d
lea eax, [ebp - 0x70]
push eax
call fcn.004078d3
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
add esp, 0xc
test eax, eax
je 0x408aae
lea eax, [ebp - 0x38]
push eax
push ecx
lea eax, [ebp - 0x40]
mov ecx, esp
push eax
call fcn.0040104d
lea eax, [ebp - 0x70]
push eax
call fcn.004078d3
add esp, 0xc
lea ecx, [ebp - 0x64]
call fcn.00401df1
lea ecx, [ebp - 0x14]
call fcn.004010e7
inc eax
push eax
call fcn.0040c780
pop ecx
mov esi, eax
push dword [ebp - 0x14]
push esi
call edi
push esi
lea ecx, [ebp - 0x64]
call fcn.00402143
lea ecx, [ebp - 0x64]
call fcn.00401e4b
push eax
lea ecx, [ebp - 0x14]
call fcn.00401168
cmp esi, ebx
je 0x408aa6
push esi
call fcn.0040c697
pop ecx
lea ecx, [ebp - 0x64]
call fcn.00401e24
lea eax, [ebp - 0x20]
push eax
push ecx
lea eax, [ebp - 0x3c]
mov ecx, esp
push eax
call fcn.0040104d
lea eax, [ebp - 0x70]
push eax
call fcn.004078d3
add esp, 0xc
test eax, eax
je 0x408b1b
lea ecx, [ebp - 0x64]
call fcn.00401df1
lea ecx, [ebp - 0x20]
call fcn.004010e7
inc eax
push eax
call fcn.0040c780
pop ecx
mov esi, eax
push dword [ebp - 0x20]
push esi
call edi
push esi
lea ecx, [ebp - 0x64]
call fcn.00402143
lea ecx, [ebp - 0x64]
call fcn.00401e4b
push eax
lea ecx, [ebp - 0x20]
call fcn.00401168
cmp esi, ebx
je 0x408b13
push esi
call fcn.0040c697
pop ecx
lea ecx, [ebp - 0x64]
call fcn.00401e24
push dword [ebp - 0x20]
call fcn.0040c67e
push dword [ebp - 0x14]
mov dword [ebp - 0x2c], eax
call fcn.0040c67e
pop ecx
mov dword [ebp - 8], eax
pop ecx
lea ecx, [ebp - 0xc]
call fcn.00401041
lea ecx, [ebp - 0x8c]
call fcn.00401df1
lea ecx, [ebp - 0x1c]
call fcn.004010e7
inc eax
push eax
call fcn.0040c780
pop ecx
mov esi, eax
push dword [ebp - 0x1c]
push esi
call edi
push esi
mov dword [ebp - 4], ebx
push dword [ebp - 0x1c]
call fcn.0040ccc6
pop ecx
test eax, eax
pop ecx
jne 0x408b77
mov dword [ebp - 4], 1
push esi
lea ecx, [ebp - 0x8c]
call fcn.00402143
lea ecx, [ebp - 0x24]
call fcn.00401041
push dword [ebp - 0x10]
mov edi, dword [ebp - 0x88]
call fcn.0040c67e
pop ecx
mov dword [ebp - 0x78], eax
lea ecx, [ebp - 0x24]
push ecx
push eax
push edi
lea ecx, [ebp - 0x90]
call fcn.004084cd
lea ecx, [ebp - 0x18]
call fcn.004012be
lea ecx, [ebp - 0x24]
call fcn.004012be
push dword [ebp - 0x28]
call fcn.0040c67e
pop ecx
mov edx, eax
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, edx
je 0x408c85
lea ecx, [ebp - 8]
call fcn.00401041
push str._d____d
lea ecx, [ebp - 0x30]
call fcn.0040108c
mov eax, dword [eax]
push dword [ebp - 0x28]
mov dword [ebp - 4], eax
call fcn.0040c67e
pop ecx
mov edi, esi
push eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ebp - 8]
push ecx
push dword [ebp - 4]
push eax
call fcn.0040164f
add esp, 0x10
lea ecx, [ebp - 0x30]
call fcn.00401a9f
lea eax, [ebp - 8]
lea ecx, [ebp - 0x44]
push eax
push str.__1__Base64_r_n
push str.AutoUpdate_Error
call fcn.0040108c
push eax
lea eax, [ebp - 4]
push eax
call fcn.00405d9c
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00405d53
mov eax, dword [eax]
push 0x40000
push ebx
push eax
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x30]
call fcn.00401a9f
lea ecx, [ebp - 4]
call fcn.00401a9f
lea ecx, [ebp - 0x44]
call fcn.00401a9f
lea ecx, [ebp - 8]
jmp 0x409027
push dword [ebp - 0x10]
mov edi, dword [ebp - 0x78]
call fcn.0040c67e
cmp eax, edi
pop ecx
je 0x408d3a
lea ecx, [ebp - 8]
call fcn.00401041
mov edi, dword [ebp - 0x78]
push str.from_base:_d_nfile_len:_d
lea ecx, [ebp - 0x30]
call fcn.0040108c
mov eax, dword [eax]
push dword [ebp - 0x10]
mov dword [ebp - 0x44], eax
call fcn.0040c67e
pop ecx
push eax
push edi
push dword [ebp - 0x44]
lea eax, [ebp - 8]
push eax
call fcn.0040164f
add esp, 0x10
lea ecx, [ebp - 0x30]
call fcn.00401a9f
lea eax, [ebp - 0x10]
lea ecx, [ebp - 4]
push eax
push str.__2__Base64
push str.AutoUpdate_Error
call fcn.0040108c
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00405d9c
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00405d53
mov eax, dword [eax]
push 0x40000
push eax
push dword [ebp - 8]
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x44]
call fcn.00401a9f
lea ecx, [ebp - 0x30]
call fcn.00401a9f
lea ecx, [ebp - 4]
call fcn.00401a9f
lea ecx, [ebp - 8]
jmp 0x409027
push dword [ebp - 0x24]
push dword [ebp - 0x18]
call fcn.0040ccc6
pop ecx
test eax, eax
pop ecx
je 0x408deb
push str.Sha256_error_
lea ecx, [ebp - 0x2c]
call fcn.0040108c
mov edi, dword [eax]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x18]
push str._nOut:
push eax
push str.__2b__In:
push str.AutoUpdate_Error
lea ecx, [ebp - 0x48]
call fcn.0040108c
push eax
lea eax, [ebp - 4]
push eax
call fcn.00405d9c
push eax
lea eax, [ebp - 8]
push eax
call fcn.00405d53
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.00405d9c
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00405d53
mov eax, dword [eax]
push 0x40000
push edi
push eax
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x44]
call fcn.00401a9f
lea ecx, [ebp - 0x30]
call fcn.00401a9f
lea ecx, [ebp - 8]
call fcn.00401a9f
lea ecx, [ebp - 4]
call fcn.00401a9f
lea ecx, [ebp - 0x48]
call fcn.00401a9f
lea ecx, [ebp - 0x2c]
jmp 0x409027
mov eax, dword [0x41e89c]
cmp dword [ebp - 8], eax
je 0x408e37
push str.__3_
push str.AutoUpdate_Error
lea ecx, [ebp - 0x48]
call fcn.0040108c
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00405d9c
mov eax, dword [eax]
push 0x40000
push ebx
push eax
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x2c]
call fcn.00401a9f
lea ecx, [ebp - 0x48]
jmp 0x409027
mov ecx, eax
imul ecx, ecx, 0x1e61
cmp dword [ebp - 0x2c], ecx
je 0x408e86
push str.__3b_
push str.AutoUpdate_Error
lea ecx, [ebp - 0x48]
call fcn.0040108c
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.00405d9c
mov eax, dword [eax]
push 0x40000
push ebx
push eax
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [ebp - 0x2c]
call fcn.00401a9f
lea ecx, [ebp - 0x48]
jmp 0x409027
push dword [ebp - 8]
mov edi, esi
or ecx, 0xffffffff
push eax
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [ebp - 0xc]
push ecx
push dword [ebp - 4]
push dword [ebp - 0x78]
push str.Base_cur_leb:__d_nok:_d_nstrlen:_d_ntime_chk:_d___d
push eax
call fcn.0040164f
add esp, 0x1c
lea ecx, [ebp - 0xc]
push str._nno_Base64_len:
call fcn.004011a4
lea eax, [ebp - 0x10]
lea ecx, [ebp - 0xc]
push eax
call fcn.00401186
push str._nBase64_len:
lea ecx, [ebp - 0xc]
call fcn.004011a4
lea eax, [ebp - 0x28]
lea ecx, [ebp - 0xc]
push eax
call fcn.00401186
push str._nbase_64_code_str:
lea ecx, [ebp - 0xc]
call fcn.004011a4
lea eax, [ebp - 0x38]
lea ecx, [ebp - 0xc]
push eax
call fcn.00401186
push str._ntime_base_64_str:
lea ecx, [ebp - 0xc]
call fcn.004011a4
lea eax, [ebp - 0x14]
lea ecx, [ebp - 0xc]
push eax
call fcn.00401186
lea ecx, [ebp - 4]
call fcn.00401041
push 0x105
lea ecx, [ebp - 4]
call fcn.004019f3
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push 0xffffffffffffffff
lea ecx, [ebp - 4]
call fcn.00401a6e
push dword [0x41ace4]
lea ecx, [ebp - 4]
call fcn.004011a4
mov edi, str._Autoupdate.exe
lea ecx, [ebp - 4]
push edi
call fcn.004011a4
push str._n_nt:_n
lea ecx, [ebp - 0xc]
call fcn.004011a4
lea eax, [ebp - 4]
lea ecx, [ebp - 0xc]
push eax
call fcn.00401186
lea eax, [ebp - 8]
push eax
call fcn.0040bbaa
pop ecx
push dword [0x41ace4]
lea ecx, [ebp - 0x48]
call fcn.0040108c
push eax
lea eax, [ebp - 0x2c]
push 0x41a428
push eax
call fcn.00405de4
push eax
lea ecx, [ebp - 8]
call fcn.00401186
lea ecx, [ebp - 0x2c]
call fcn.00401a9f
lea ecx, [ebp - 0x48]
call fcn.00401a9f
push edi
lea ecx, [ebp - 8]
call fcn.004011a4
lea eax, [ebp - 0x8c]
push ebx
push eax
push ecx
lea eax, [ebp - 8]
mov ecx, esp
push eax
xor edi, edi
call fcn.0040104d
call fcn.00407718
add esp, 0xc
test eax, eax
jne 0x408fe2
push 1
pop edi
jmp 0x408feb
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp - 0x8c]
push 1
push eax
push ecx
lea eax, [ebp - 4]
mov ecx, esp
push eax
call fcn.0040104d
call fcn.00407718
add esp, 0xc
lea eax, [ebp - 4]
push edi
push ecx
mov ecx, esp
push eax
call fcn.0040104d
call fcn.00408723
pop ecx
pop ecx
lea ecx, [ebp - 8]
call fcn.00401a9f
lea ecx, [ebp - 4]
call fcn.00401a9f
lea ecx, [ebp - 0x24]
call fcn.00401a9f
cmp esi, ebx
je 0x40903f
push esi
call fcn.0040c697
pop ecx
lea ecx, [ebp - 0x8c]
call fcn.00401e24
lea ecx, [ebp - 0xc]
call fcn.00401a9f
lea ecx, [ebp - 0x3c]
call fcn.00401a9f
lea ecx, [ebp - 0x34]
call fcn.00401a9f
lea ecx, [ebp - 0x40]
call fcn.00401a9f
lea ecx, [ebp - 0x20]
call fcn.00401a9f
lea ecx, [ebp - 0x14]
call fcn.00401a9f
lea ecx, [ebp - 0x38]
call fcn.00401a9f
lea ecx, [ebp - 0x10]
call fcn.00401a9f
lea ecx, [ebp - 0x28]
call fcn.00401a9f
lea ecx, [ebp - 0x1c]
call fcn.00401a9f
lea ecx, [ebp - 0x18]
call fcn.00401a9f
lea ecx, [ebp - 0x70]
call fcn.00409a1a
lea ecx, [ebp + 8]
call fcn.00401a9f
pop edi
pop esi
xor eax, eax
pop ebx
leave
ret