Function at 0x425fd0
Capabilities:
Check mutex on windows

Disassembly:
sub esp, 0x30
push ebx
push esi
mov esi, dword [esp + 0x40]
xor ebx, ebx
cmp esi, ebx
push edi
jne 0x425fe9
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x30
ret
mov eax, dword [0x642544]
cmp eax, ebx
jne 0x426020
push str.JMUSBAcess
push ebx
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexA]
cmp eax, ebx
mov dword [0x642544], eax
jne 0x426029
push str.JMUSBAcess
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x642544], eax
jmp 0x426029
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [esi]
mov esi, dword [esp + 0x40]
mov ecx, eax
mov edi, esi
shl ecx, 6
add ecx, eax
push 0x16
push ebx
push ebx
lea ecx, [eax + ecx*2]
xor eax, eax
shl ecx, 4
mov edx, ecx
push 0x42f360
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
mov dword [esp + 0x20], ebx
and ecx, 3
mov dword [esp + 0x1c], ebx
rep stosb byte es:[edi], al
call dword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsA]
mov edi, eax
cmp edi, 0xffffffff
mov dword [esp + 0x1c], edi
jne 0x426085
mov eax, dword [0x642544]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x30
ret
lea ecx, [esp + 0x20]
push ebp
push ecx
push ebx
push 0x42f360
push ebx
push edi
mov dword [esp + 0x38], 0x1c
mov dword [esp + 0x30], ebx
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
test eax, eax
je 0x4261be
add esi, 0x814
mov dword [esp + 0x18], esi
mov ebx, dword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInterfaceDetailA]
lea edx, [esp + 0x14]
push 0
push edx
push 0
lea eax, [esp + 0x30]
push 0
push eax
push edi
call ebx
mov eax, dword [esp + 0x14]
push eax
push 0
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
lea ecx, [esp + 0x14]
push 0
mov ebp, eax
push ecx
push esi
lea edx, [esp + 0x30]
push ebp
push edx
push edi
mov dword [ebp], 5
call ebx
test eax, eax
je 0x4261b7
lea esi, [ebp + 4]
push str.usbstor
push esi
call fcn.00424360
push str.sbp2
push esi
mov ebx, eax
call fcn.00424360
add esp, 0x10
test ebx, ebx
jne 0x426127
test eax, eax
je 0x42617d
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, ecx
mov esi, ebp
lea edi, [eax - 0x704]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, eax
neg ebx
sbb ebx, ebx
lea eax, [esi - 0x1ec]
lea ecx, [esi - 0x700]
add ebx, 4
push eax
push ecx
mov dword [esi], ebx
call fcn.004259c0
mov ecx, dword [esp + 0x18]
mov edi, dword [esp + 0x28]
add esp, 8
inc ecx
add esi, 0x830
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], esi
push ebp
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x10]
cmp edx, dword [eax]
jge 0x4261be
mov eax, dword [esp + 0x1c]
lea ecx, [esp + 0x24]
inc eax
push ecx
push eax
push 0x42f360
push 0
push edi
mov dword [esp + 0x30], eax
call dword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInterfaces]
test eax, eax
jne 0x4260b7
jmp 0x4261be
push ebp
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0x10]
push edi
mov dword [edx], esi
call dword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
test esi, esi
je 0x42631d
push 0x30800
push 0
mov dword [esp + 0x50], pe_nt_image_headers32
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
lea eax, [esp + 0x48]
push eax
push ebx
mov dword [esp + 0x28], ebx
call fcn.00424b60
add esp, 8
test esi, esi
jle 0x426308
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x18], esi
lea ebp, [ecx + 0x10]
test eax, eax
mov dword [esp + 0x1c], 0
jle 0x4262ef
add ebx, 0x100
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
xor edx, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x426258
cmp byte [ebx + edx], 0x2f
jne 0x426247
mov byte [ebx + edx], 0x23
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
inc edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp edx, ecx
jb 0x42623d
lea edx, [ebp + 0x104]
push ebx
push edx
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
je 0x4262d0
lea edi, [ebx - 0x100]
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x630]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [ebx + 0x108]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0x104]
mov dword [ebp + 0x628], ecx
mov edx, dword [ebx + 0x100]
mov dword [ebp + 0x62c], edx
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x48]
inc ecx
add ebx, 0x308
cmp ecx, eax
mov dword [esp + 0x1c], ecx
jl 0x42622d
mov ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
add ebp, 0x830
dec ecx
mov dword [esp + 0x18], ecx
jne 0x426217
mov esi, dword [esp + 0x10]
push ebx
call dword [sym.imp.KERNEL32.dll_GlobalFree]
mov eax, dword [esp + 0x44]
push esi
push eax
call fcn.00424430
add esp, 8
mov ecx, dword [0x642544]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
pop ebp
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x30
ret