Function at 0x489b10
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 0xc]
push ebx
xor ebx, ebx
push esi
mov eax, dword [eax]
push edi
cmp eax, 0xffffffff
jne 0x489b2d
or edi, eax
inc edi
jmp 0x489d8d
mov edi, eax
cmp edi, 0x69
jge 0x489b3a
inc edi
jmp 0x489d8d
lea ecx, [ebp - 0xc]
lea edx, [ebp - 4]
push ecx
lea eax, [ebp - 8]
lea esi, [edi - 5]
push edx
push eax
push esi
call fcn.00489440
add esp, 0x10
cmp eax, ebx
je 0x489b62
mov ecx, dword [ebp + 0xc]
mov dword [ecx], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
cmp ecx, ebx
je 0x489d22
cmp dword [ecx + 0xb8], esi
jne 0x489b7b
mov ecx, dword [ecx + 0x18]
mov dword [ebp - 4], ecx
cmp ecx, ebx
je 0x489d22
mov eax, dword [ecx + 0xc]
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, ebx
je 0x489c01
call esi
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], eax
jne 0x489c01
mov esi, 0xc0000028
cmp dword [0x58f71c], 1
jl 0x489bc4
mov eax, dword [ebp - 8]
lea ecx, [eax*8]
sub ecx, eax
lea edx, [ecx*4 + 0x630270]
push edx
call fcn.00471c10
add esp, 4
cmp dword [0x58f71c], 2
jl 0x489ce1
mov ecx, dword [ebp - 8]
lea eax, [ecx*8]
sub eax, ecx
shl eax, 2
mov dword [eax + 0x630264], ebx
mov eax, dword [eax + 0x630260]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov edx, dword [ebp + 0xc]
mov eax, esi
mov dword [edx], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [0x58f71c], 2
jl 0x489c64
cmp dword [ecx], ebx
jne 0x489c3c
add ecx, 4
push ecx
call fcn.00471c40
add esp, 4
test eax, eax
jne 0x489c5a
mov eax, dword [ebp - 4]
cmp dword [eax], ebx
jne 0x489c36
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov edx, dword [ebp - 4]
mov dword [edx], eax
mov eax, dword [ebp - 4]
mov dword [eax + 4], ebx
mov ecx, dword [ebp - 4]
mov ecx, dword [ecx]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [ebp - 4]
add edx, 4
push edx
call fcn.00471c40
add esp, 4
cmp eax, ebx
je 0x489c70
mov esi, 0xc0000098
jmp 0x489b9f
cmp dword [ecx + 4], ebx
jne 0x489c5a
mov dword [ecx + 4], 1
call esi
mov ecx, dword [ebp - 4]
mov dword [ecx + 8], eax
mov edx, dword [ebp - 4]
mov eax, 1
mov dword [edx + 0xc], eax
mov ecx, dword [0x58f71c]
cmp ecx, eax
jl 0x489ca9
mov eax, dword [ebp - 8]
lea ecx, [eax*8]
sub ecx, eax
lea edx, [ecx*4 + 0x630270]
push edx
call fcn.00471c10
add esp, 4
cmp dword [0x58f71c], 2
jl 0x489d02
mov ecx, dword [ebp - 8]
lea eax, [ecx*8]
sub eax, ecx
shl eax, 2
mov dword [eax + 0x630264], ebx
mov eax, dword [eax + 0x630260]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 4]
push edx
push eax
jmp 0x48a0ef
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0xc]
lea ecx, [eax*8]
sub ecx, eax
mov eax, esi
mov dword [ecx*4 + 0x630264], ebx
mov dword [edx], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 8]
mov edx, dword [ebp + 0x10]
push edx
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [ebp - 4]
push eax
mov dword [ecx*4 + 0x630264], ebx
jmp 0x48a0ef
cmp dword [0x58f71c], 1
jl 0x489d47
mov eax, dword [ebp - 8]
lea ecx, [eax*8]
sub ecx, eax
lea edx, [ecx*4 + 0x630270]
push edx
call fcn.00471c10
add esp, 4
cmp dword [0x58f71c], 2
jl 0x489d77
mov ecx, dword [ebp - 8]
lea eax, [ecx*8]
sub eax, ecx
shl eax, 2
mov dword [eax + 0x630264], ebx
mov eax, dword [eax + 0x630260]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [ebp - 8]
jmp 0x489d8a
mov eax, dword [ebp - 8]
lea ecx, [eax*8]
sub ecx, eax
mov dword [ecx*4 + 0x630264], ebx
lea edi, [eax + 1]
cmp edi, 0x272
mov dword [ebp - 0xc], edi
jge 0x48a114
lea edx, [edi*8]
sub edx, edi
lea esi, [edx*4 + 0x630260]
cmp dword [esi + 0x18], ebx
je 0x489f19
cmp esi, 0x630ddc
jge 0x489e79
cmp dword [esi + 0xc], ebx
je 0x489dd5
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [esi + 8], eax
je 0x489f34
cmp dword [0x58f71c], 2
jl 0x489e63
cmp dword [esi], ebx
jne 0x489e0b
lea edi, [esi + 4]
push edi
call fcn.00471c40
add esp, 4
test eax, eax
jne 0x489f48
cmp dword [esi], ebx
jne 0x489e09
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [esi], eax
mov dword [edi], ebx
mov eax, dword [esi]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea edi, [esi + 4]
push edi
call fcn.00471c40
add esp, 4
cmp eax, ebx
jne 0x489f48
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esi + 8], eax
mov dword [esi + 0xc], 1
mov eax, dword [esi + 0x18]
cmp eax, ebx
mov dword [ebp - 4], eax
jne 0x489f5c
mov eax, dword [0x58f71c]
mov dword [esi + 0xc], ebx
cmp eax, 2
mov dword [edi], ebx
jl 0x489f19
mov ecx, dword [esi]
push ecx
jmp 0x489f13
mov eax, dword [esi + 4]
lea edi, [esi + 4]
cmp eax, ebx
jne 0x489f48
mov dword [edi], 1
jmp 0x489e2a
cmp dword [0x58f71c], 2
jl 0x489ec0
cmp dword [esi], ebx
jne 0x489ea7
lea edi, [esi + 4]
push edi
call fcn.00471c40
add esp, 4
test eax, eax
jne 0x489ed0
cmp dword [esi], ebx
jne 0x489ea5
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [esi], eax
mov dword [edi], ebx
mov edx, dword [esi]
push 0xffffffffffffffff
push edx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea edi, [esi + 4]
push edi
call fcn.00471c40
add esp, 4
jmp 0x489ed0
mov eax, dword [esi + 4]
lea edi, [esi + 4]
cmp eax, ebx
jne 0x489ed0
mov dword [edi], 1
cmp dword [0x58f71c], 1
jl 0x489ee5
lea eax, [esi + 0x10]
push eax
call fcn.00471be0
add esp, 4
mov ecx, dword [esi + 0x18]
cmp ecx, ebx
mov dword [ebp - 4], ecx
jne 0x489f66
cmp dword [0x58f71c], 1
jl 0x489f04
lea ecx, [esi + 0x10]
push ecx
call fcn.00471c10
add esp, 4
mov eax, dword [0x58f71c]
mov dword [edi], ebx
cmp eax, 2
jl 0x489f19
mov edx, dword [esi]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov edx, dword [ebp - 0xc]
add esi, 0x1c
inc edx
cmp esi, 0x6346d8
mov dword [ebp - 0xc], edx
jge 0x48a114
jmp 0x489dac
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov eax, 0xc0000028
mov dword [edx], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov eax, 0xc0000098
mov dword [edx], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x10]
push ecx
push eax
jmp 0x48a0ef
cmp dword [ecx + 0xc], ebx
je 0x489fde
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [ebp - 4]
cmp dword [ecx + 8], eax
jne 0x489fde
mov esi, 0xc0000028
mov eax, dword [0x58f71c]
mov edi, dword [ebp - 0xc]
cmp eax, 1
jl 0x489fa4
lea ecx, [edi*8]
sub ecx, edi
lea edx, [ecx*4 + 0x630270]
push edx
call fcn.00471c10
add esp, 4
cmp dword [0x58f71c], 2
jl 0x48a0c0
neg dword [eax]
add cl, byte [edi]
mov word [edi], cs
add dword [eax], eax
add byte [ebp + 0xfd04], cl
add byte [eax], al
lea eax, [edi*8]
sub eax, edi
shl eax, 2
mov dword [eax + 0x630264], ebx
mov ecx, 0x988902e0
add ah, byte fs:[ebx]
mov eax, dword [eax + 0x630260]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov edx, dword [ebp + 0xc]
mov eax, esi
mov dword [edx], edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x58f71c]
mov edi, 2
cmp eax, edi
jl 0x48a04b
cmp dword [ecx], ebx
jne 0x48a023
add ecx, 4
push ecx
call fcn.00471c40
add esp, 4
test eax, eax
jne 0x48a041
cmp dl, byte [ebp - 0x668c939a]
xchg esp, eax
jbe 0x489fa7
loopne 0x489fb9
xchg ebx, eax
xlatb
lodsb al, byte [esi]
mov ss, edi
int3
cmc
shl byte [ebx + 0x68], 1
retf 0xc634
mov byte [0x456eb07e], al
imul eax, dword [edx + 0x37], 0xc335c17
jb 0x48a08b
xor ecx, dword [edx + esi*2]
cmp al, 0xa4
movsb byte es:[edi], byte [esi]
cdq
rcl bl, cl
lodsb al, byte [esi]
sub ebx, dword [edi]
fsubrp st(0)
sahf
push edi
cmp dword [edx + 0x523ca4d3], ebp
xor al, byte [ebx - 0x16ec219f]
cmpsd dword [esi], dword es:[edi]
sbb al, dl
xor byte [esi - 0x153c65d5], ah
int 0x45
popfd
sbb al, 0xd7
push edx
xchg edi, eax
test byte [ebp - 0x78], ch
rol dl, cl
imul eax, dword [esi], 0x8490975
and dword [edx - 0x34], 0x3734f87b
wait
jne 0x48a0a5
nop
cmp dword ss:[edx + esi*8 + 0x4334599c], ecx
sub dword [esi - 0x35], esp
adc al, 0xc3
jmp 0xc29d980b
retf
jne 0x48a096
and edi, eax
inc esi
mov esp, 0x5910cde3
adc eax, 0xc648d7bf
mov ebp, 0xe9dd34c4
pop edi
out dx, eax
out dx, al
nop
add ebx, edx
push ds
daa
xor esi, dword [ecx - 0x3190b98a]
inc esp
out 0x4c, al
ja 0x48a089
outsb dx, byte [esi]
mov esp, 0x81d318a3
mov word [ecx - 0x71], fs
mov word [ebp + 0x1e], gs
lds ebp, [ecx - 0x32]
invalid
dec esp
pushf
sbb dword [ebx + 0x6988a20e], edx
retf 0x9c10
push ds
add ebx, dword [esi]
or al, 0xfb
popfd
and al, 0x6f
stosb byte es:[edi], al
invalid
jl 0x48a0dc
shl byte [edi], cl
mov ch, byte [ecx + 0x69]
salc
jne 0x48a100
xchg ebx, eax
dec edi
invalid