Function at 0x41a683
Capabilities:
Check for time delay via gettickcount
Check mutex on windows
Create process on windows

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0x2bc
mov eax, dword [ebp + 0x78]
push ebx
xor ebx, ebx
cmp eax, ebx
push esi
push edi
mov dword [ebp + 0x48], ebx
je 0x41a6c4
mov dx, word [eax]
cmp dx, bx
je 0x41a6c4
cmp word [eax + 2], 0x3a
jne 0x41a6c4
mov cx, word [eax + 4]
cmp cx, bx
je 0x41a6c1
cmp cx, 0x5c
jne 0x41a6c4
cmp word [eax + 6], bx
jne 0x41a6c4
mov dword [ebp + 0x48], edx
push dword [ebp + 0x7c]
mov word [ebp + 0x60], 0xff
mov word [ebp + 0x62], 0x3a
mov word [ebp + 0x64], bx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax + eax + 0x22]
add eax, 0x28
push eax
lea ecx, [ebp + 0x50]
call fcn.00437072
mov eax, dword [ebp + 0x50]
push 0x10
pop ecx
mov dword [ebp + 0x68], eax
xor eax, eax
mov dword [ebp - 0x48], 0x44
lea edi, [ebp - 0x44]
rep stosd dword es:[edi], eax
or dword [ebp - 0x1c], 1
mov esi, str..D:
lea edi, [ebp + 4]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push str.ImDiskFormat
movsd dword es:[edi], dword [esi]
push ebx
push ebx
mov word [ebp - 0x18], bx
mov dword [ebp + 0x58], 8
movsd dword es:[edi], dword [esi]
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, dword [ebp + 0x48]
cmp si, bx
mov dword [ebp + 0x4c], eax
je 0x41a73d
mov word [ebp + 0x60], si
jmp 0x41a769
push dword [ebp + 0x78]
call fcn.00410048
cmp eax, ebx
pop ecx
mov dword [ebp + 0x74], eax
jge 0x41a75f
lea ecx, [ebp + 0x50]
call fcn.00431c4c
mov eax, dword [ebp + 0x74]
neg eax
jmp 0x41aa8f
call dword [0x4afed8]
mov word [ebp + 0x60], ax
push dword [ebp + 0x74]
lea eax, [ebp - 0x250]
push str.DeviceImDisk_u
push 0x103
push eax
call fcn.00483b98
add esp, 0x10
cmp word [ebp + 0x60], bx
je 0x41a7ab
cmp si, bx
jne 0x41a7b7
push ebx
push 1
push ebx
lea eax, [ebp + 0x60]
push eax
lea eax, [ebp - 0x250]
push eax
call fcn.0043b624
add esp, 0x14
test eax, eax
jne 0x41a7b7
mov dword [ebp + 0x58], 8
jmp 0x41aa6b
push str.format.com
push dword [ebp + 0x68]
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp + 0x60]
push eax
push dword [ebp + 0x68]
call esi
push 0x49825c
push dword [ebp + 0x68]
call esi
mov edi, dword [ebp + 0x7c]
cmp word [edi], 0x22
jne 0x41a801
inc edi
inc edi
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, ebx
jle 0x41a801
lea eax, [edi + eax*2 - 2]
cmp word [eax], 0x22
jne 0x41a801
mov word [eax], bx
push edi
push dword [ebp + 0x68]
call esi
push 0x49adac
push edi
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
jne 0x41a821
push 0x49ada0
push dword [ebp + 0x68]
call esi
push 0x49adac
push edi
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
jne 0x41a83b
push 0x49ad94
push dword [ebp + 0x68]
call esi
mov ax, word [ebp + 0x60]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov word [ebp + 0xc], ax
mov dword [ebp + 0x5c], 0x12b
push ebx
push ebx
push 3
push ebx
push ebx
push 0x80000000
lea eax, [ebp + 4]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x41a916
mov dword [ebp + 0x78], ebx
call edi
mov esi, eax
add esi, 0x64
call edi
mov ecx, esi
sub ecx, eax
cmp ecx, ebx
jle 0x41a90b
cmp byte [0x4ae290], bl
jle 0x41a90b
cmp ecx, ebx
jbe 0x41a8fb
cmp ecx, 0x7d0
jbe 0x41a8a1
mov ecx, 0x3e8
jmp 0x41a8a9
cmp ecx, 0x64
jbe 0x41a8a9
push 0x64
pop ecx
push 0x4bf
push ecx
push ebx
lea eax, [ebp + 0x40]
push eax
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x41a8fb
cmp dword [ebp + 0x78], ebx
jg 0x41a8cc
call edi
mov ecx, esi
sub ecx, eax
test ecx, ecx
jle 0x41a903
push 3
push ebx
push ebx
push ebx
lea eax, [ebp + 0x14]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x41a903
lea eax, [ebp + 0x14]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp + 0x14]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [ebp + 0x78], ebx
jle 0x41a8fb
dec dword [ebp + 0x78]
cmp byte [0x4ae290], bl
jg 0x41a8bd
mov dword [ebp + 0x78], ebx
jmp 0x41a878
dec dword [ebp + 0x5c]
jns 0x41a850
jmp 0x41a91d
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp + 0x44], 2
mov dword [ebp + 0x5c], 0x1d
lea eax, [ebp + 0x30]
push eax
lea eax, [ebp - 0x48]
push eax
push ebx
push ebx
push ebx
push 1
push ebx
push ebx
push dword [ebp + 0x68]
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x41a960
push str.Cannot_format_drive:
call fcn.0040ff61
dec dword [ebp + 0x44]
pop ecx
jns 0x41a99a
push 8
pop esi
jmp 0x41aa85
push dword [ebp + 0x34]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp + 0x54], ebx
call esi
push 0xffffffffffffffff
push dword [ebp + 0x30]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [ebp + 0x54]
push eax
push dword [ebp + 0x30]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov eax, dword [ebp + 0x54]
push dword [ebp + 0x30]
mov dword [ebp + 0x58], eax
call esi
cmp dword [ebp + 0x54], ebx
je 0x41aa40
mov dword [ebp + 0x78], ebx
call edi
mov esi, eax
add esi, 0x64
call edi
mov ecx, esi
sub ecx, eax
cmp ecx, ebx
jle 0x41aa37
cmp byte [0x4ae290], bl
jle 0x41aa37
cmp ecx, ebx
jbe 0x41aa27
cmp ecx, 0x7d0
jbe 0x41a9cd
mov ecx, 0x3e8
jmp 0x41a9d5
cmp ecx, 0x64
jbe 0x41a9d5
push 0x64
pop ecx
push 0x4bf
push ecx
push ebx
lea eax, [ebp - 4]
push eax
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x41aa27
cmp dword [ebp + 0x78], ebx
jg 0x41a9f8
call edi
mov ecx, esi
sub ecx, eax
test ecx, ecx
jle 0x41aa2f
push 3
push ebx
push ebx
push ebx
lea eax, [ebp + 0x14]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x41aa2f
lea eax, [ebp + 0x14]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp + 0x14]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [ebp + 0x78], ebx
jle 0x41aa27
dec dword [ebp + 0x78]
cmp byte [0x4ae290], bl
jg 0x41a9e9
mov dword [ebp + 0x78], ebx
jmp 0x41a9a4
dec dword [ebp + 0x5c]
jns 0x41a92b
cmp word [ebp + 0x48], bx
jne 0x41aa59
lea eax, [ebp - 0x250]
push eax
lea eax, [ebp + 0x60]
push eax
push 7
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceW]
push ebx
push 0x10000
push ebx
push dword [ebp + 0x74]
call fcn.0041060b
add esp, 0x10
cmp dword [ebp + 0x4c], ebx
je 0x41aa82
push dword [ebp + 0x4c]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [ebp + 0x4c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp + 0x58]
lea ecx, [ebp + 0x50]
call fcn.00431c4c
mov eax, esi
pop edi
pop esi
pop ebx
add ebp, 0x6c
leave
ret