Function at 0x42b108
Capabilities:
Check mutex on windows
Create process on windows

Disassembly:
mov eax, 0x4e91c5
call fcn.004b48a0
sub esp, 0x28c
mov eax, dword [ebp + 0xc]
push ebx
xor ebx, ebx
cmp eax, ebx
push esi
push edi
mov dword [ebp - 0x20], ebx
je 0x42b14e
mov dx, word [eax]
cmp dx, bx
je 0x42b14e
cmp word [eax + 2], 0x3a
jne 0x42b14e
mov cx, word [eax + 4]
cmp cx, bx
je 0x42b14b
cmp cx, 0x5c
jne 0x42b14e
cmp word [eax + 6], bx
jne 0x42b14e
mov dword [ebp - 0x20], edx
push dword [ebp + 0x10]
mov word [ebp - 0x18], 0xff
mov word [ebp - 0x16], 0x3a
mov word [ebp - 0x14], bx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [eax + eax + 0x22]
add eax, 0x1e
push eax
lea ecx, [ebp - 0x28]
call fcn.004492b0
mov eax, dword [ebp - 0x28]
push 0x10
pop ecx
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x90], 0x44
lea edi, [ebp - 0x8c]
rep stosd dword es:[edi], eax
or dword [ebp - 0x64], 1
mov esi, str..D:
lea edi, [ebp - 0x4c]
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 dword [ebp - 4], ebx
mov word [ebp - 0x60], bx
mov dword [ebp - 0x1c], 8
movsd dword es:[edi], dword [esi]
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov edi, dword [ebp - 0x20]
cmp di, bx
mov dword [ebp - 0x24], eax
je 0x42b1d3
mov esi, dword [ebp + 8]
mov word [ebp - 0x18], di
jmp 0x42b1f6
push dword [ebp + 0xc]
call fcn.00422b61
mov esi, eax
cmp esi, ebx
pop ecx
mov dword [ebp + 8], esi
jge 0x42b1ec
neg esi
jmp 0x42b3b4
call dword [0x51d264]
mov word [ebp - 0x18], ax
push esi
push str.DeviceImDisk_u
lea eax, [ebp - 0x298]
push 0x103
push eax
call fcn.004b5478
add esp, 0x10
cmp word [ebp - 0x18], bx
je 0x42b232
cmp di, bx
jne 0x42b23e
lea eax, [ebp - 0x298]
push eax
lea eax, [ebp - 0x18]
push eax
push 1
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceW]
test eax, eax
jne 0x42b23e
mov dword [ebp - 0x1c], 8
jmp 0x42b39a
push str.format.com
push dword [ebp - 0x10]
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [ebp - 0x18]
push eax
push dword [ebp - 0x10]
call esi
push 0x4f3f00
push dword [ebp - 0x10]
call esi
mov edi, dword [ebp + 0x10]
cmp word [edi], 0x22
jne 0x42b288
inc edi
inc edi
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, ebx
jle 0x42b288
lea eax, [edi + eax*2 - 2]
cmp word [eax], 0x22
jne 0x42b288
mov word [eax], bx
push edi
push dword [ebp - 0x10]
call esi
push 0x4f5f4c
push edi
call dword [sym.imp.SHLWAPI.dll_StrStrIW]
test eax, eax
jne 0x42b2a8
push str.__y
push dword [ebp - 0x10]
call esi
mov ax, word [ebp - 0x18]
mov word [ebp - 0x44], ax
mov edi, 0x12b
mov esi, 0x51d2a0
push ebx
push ebx
push 3
push ebx
push ebx
push SysReAllocStringLen
lea eax, [ebp - 0x4c]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x42b2e2
push 0x64
mov ecx, esi
call fcn.0042072b
dec edi
jns 0x42b2ba
jmp 0x42b2e9
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x1d
mov dword [ebp - 0x2c], 2
pop edi
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x90]
push eax
push ebx
push ebx
push ebx
push 1
push ebx
push ebx
push dword [ebp - 0x10]
push ebx
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x42b32b
push str.Cannot_format_drive:
call fcn.00422a7a
dec dword [ebp - 0x2c]
pop ecx
jns 0x42b363
push 8
pop esi
jmp 0x42b3b4
push dword [ebp - 0x38]
mov dword [ebp + 0xc], ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0xffffffffffffffff
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [ebp + 0xc]
push eax
push dword [ebp - 0x3c]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov eax, dword [ebp + 0xc]
push dword [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp + 0xc], ebx
je 0x42b36f
push 0x64
mov ecx, esi
call fcn.0042072b
dec edi
jns 0x42b2f3
cmp word [ebp - 0x20], bx
jne 0x42b388
lea eax, [ebp - 0x298]
push eax
lea eax, [ebp - 0x18]
push eax
push 7
call dword [sym.imp.KERNEL32.dll_DefineDosDeviceW]
push ebx
push 0x10000
push ebx
push dword [ebp + 8]
call fcn.00423582
add esp, 0x10
cmp dword [ebp - 0x24], ebx
je 0x42b3b1
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [ebp - 0x1c]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.00443880
mov ecx, dword [ebp - 0xc]
pop edi
mov eax, esi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret