Function at 0x41d740
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42b678
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x58
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 0x14], esi
mov dword [esi + 4], ebx
mov dword [esi + 8], ebx
mov dword [esi + 0xc], 1
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x28], ebx
mov eax, dword [ebp + 8]
mov dword [ebp - 4], ebx
push eax
mov dword [esi], 0x42cf30
call fcn.0042193d
mov edi, eax
add esp, 4
mov dword [ebp + 8], edi
mov dword [esi + 0x48], edi
mov dword [esi + 0x10], 8
call fcn.0041c690
cmp eax, ebx
mov dword [ebp - 0x10], eax
mov dword [esi + 0x878], eax
je 0x41d7dd
lea ecx, [edi + 1]
mov dl, cl
mov dword [esi + 0x874], ecx
push edx
call fcn.0041fce0
add esp, 4
and eax, 0xffff
mov dword [esi + 0x870], eax
mov eax, ebx
sete al
mov dword [esi + 0x86c], eax
jmp 0x41d7eb
xor ecx, ecx
cmp edi, 2
setl cl
mov dword [esi + 0x86c], ecx
cmp dword [0x43258c], ebx
jne 0x41d7f8
call fcn.0041d630
mov edx, dword [0x432580]
mov eax, edx
mov dword [esi + 0x85c], edx
cmp eax, 3
jne 0x41d930
mov eax, dword [str.RWABS_MUTEX]
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
push 0xffff
push eax
mov dword [esi + 0x864], eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x41daca
push str.rwabs32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
cmp eax, ebx
mov dword [esi + 0x860], eax
je 0x41daca
cmp dword [ebp - 0x10], ebx
je 0x41d89d
lea ecx, [ebp - 0x64]
push ecx
mov ecx, esi
call fcn.0041e060
test eax, eax
je 0x41daca
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x50]
movzx cx, byte [ebp - 0x4e]
dec edx
and eax, 0xff
and edx, 0xffff
dec ecx
mov dword [esi + 0x20], edx
mov dl, byte [ebp - 0x63]
and ecx, 0xffff
mov dword [esi + 0x28], eax
mov dword [esi + 0x24], ecx
mov byte [esi + 0x4c], dl
jmp 0x41da86
xor eax, eax
mov cl, byte [esi + 0x48]
mov dword [ebp - 0x30], eax
push ebx
mov dword [ebp - 0x2c], eax
push ebx
mov dword [ebp - 0x28], eax
push ebx
mov dword [ebp - 0x24], eax
lea edx, [ebp - 0x20]
push ebx
lea eax, [ebp - 0x30]
push edx
push eax
push 0x13
mov byte [ebp - 0x2f], 8
mov byte [ebp - 0x2a], cl
call fcn.0041ceb0
mov al, byte [ebp - 0x24]
add esp, 0x1c
test al, 1
jne 0x41daca
mov al, byte [ebp - 0x2f]
test al, al
ja 0x41daca
mov ecx, dword [ebp - 0x2a]
add edi, 0xffffff80
and ecx, 0xff
cmp edi, ecx
jge 0x41daca
mov al, byte [ebp - 0x2c]
xor cx, cx
mov dl, al
and dl, 0xc0
mov cl, dl
movzx dx, byte [ebp - 0x2b]
lea ecx, [edx + ecx*4]
mov edx, dword [ebp - 0x29]
and ecx, 0xffff
and edx, 0xff
and eax, 0x3f
mov dword [esi + 0x20], ecx
mov dword [esi + 0x28], eax
mov al, byte [ebp - 0x2e]
mov dword [esi + 0x24], edx
mov byte [esi + 0x4c], al
jmp 0x41da86
cmp eax, 1
jne 0x41daca
mov ecx, 7
xor eax, eax
lea edi, [ebp - 0x58]
mov dword [ebp - 0x14], ebx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [esi + 0x86c]
mov dword [esi + 0x868], 0xffffffff
cmp eax, ebx
je 0x41d970
mov ecx, dword [ebp + 8]
lea edx, [ebp - 0x58]
add ecx, 0x41
push ecx
push str.._c:
push edx
jmp 0x41d994
cmp dword [ebp - 0x10], ebx
je 0x41d984
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x58]
push eax
push str..PhysicalDrive_u
push ecx
jmp 0x41d994
mov edx, dword [ebp + 8]
lea eax, [ebp - 0x58]
add edx, 0xffffff80
push edx
push str..PhysicalDrive_u
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [ebp - 0x58]
push ebx
push 0x80
push 3
push ebx
push 3
push 0xc0000000
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov ebx, eax
cmp ebx, 0xffffffff
mov dword [esi + 0x868], ebx
jne 0x41d9cf
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x41daca
mov ecx, 6
xor eax, eax
lea edi, [ebp - 0x38]
rep stosd dword es:[edi], eax
mov eax, dword [esi + 0x86c]
test eax, eax
je 0x41da27
mov edi, dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [ebp + 8], 0
lea edx, [ebp - 0x14]
push 0
push edx
lea eax, [ebp - 0x38]
push 0x18
push eax
push 0
push 0
push 0x70000
push ebx
call edi
test eax, eax
jne 0x41da4f
mov eax, dword [ebp + 8]
mov ecx, eax
inc eax
cmp ecx, 4
mov dword [ebp + 8], eax
jl 0x41d9f2
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x41daca
lea edx, [ebp - 0x14]
push 0
push edx
lea eax, [ebp - 0x38]
push 0x18
push eax
push 0
push 0
push 0x70000
push ebx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x41da4f
call dword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x41daca
mov eax, dword [ebp - 0x34]
test eax, eax
jne 0x41daca
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
dec ecx
and ecx, 0xffff
and edx, 0xffff
dec eax
mov dword [esi + 0x20], ecx
mov ecx, dword [ebp - 0x30]
and eax, 0xffff
mov dword [esi + 0x28], edx
mov dword [esi + 0x24], eax
mov dword [esi + 0x858], ecx
xor ebx, ebx
mov cx, word [esi + 0x20]
mov dx, word [esi + 0x24]
mov eax, dword [esi + 0x28]
inc cx
and ecx, 0xffff
inc dx
and edx, 0xffff
mov dword [esi + 0x1c], eax
imul eax, edx
imul eax, ecx
shl eax, 9
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], edx
mov dword [esi + 8], eax
mov dword [esi + 0x2c], ebx
mov dword [esi + 0x30], ebx
mov dword [esi + 0x34], 1
mov word [esi + 0x44], bx
mov dword [esi + 0x10], ebx
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4