Function at 0x6d531ab0
Capabilities:
Check mutex on windows
Read file on windows

Disassembly:
sub esp, 0x14
cmp dword [0x6d535004], 0
push ebx
push esi
push edi
push ebp
jne 0x6d531aef
cmp dword [0x6d537df0], 0xffffffff
je 0x6d531ae0
push 0x2f9
push 0x6d5370c0
push 0x6d5377e4
call fcn.6d533090
add esp, 0xc
mov eax, 0x1009
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x14
mov eax, dword [0x6d535008]
shl eax, 6
add eax, 0x16c
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_LocalAlloc]
mov ebx, eax
test ebx, ebx
jne 0x6d531b31
push 0x1010
push 0x6d537498
push 0x6d5377b8
push 0
call dword [sym.imp.USER32.DLL_MessageBoxA]
mov eax, 0x1008
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x14
xor ecx, ecx
mov dword [ebx], ecx
mov dword [ebx + 4], ecx
mov dword [ebx + 8], ecx
mov dword [ebx + 0x14], ecx
mov dword [ebx + 0x18], 0xffff
mov dword [ebx + 0x1c], ecx
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], ecx
mov dword [ebx + 0x28], ecx
cmp dword [0x6d535008], ecx
jbe 0x6d531ba9
lea edi, [ebx + 0x16c]
xor edx, edx
mov esi, 0xffff
lea eax, [edi + 8]
mov dword [edi], 0xffffffff
mov dword [edi + 4], edx
add edi, 0x40
inc ecx
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
lea eax, [edi - 0x20]
mov dword [edi - 0x28], edx
mov dword [edi - 0x24], edx
mov dword [eax], edx
mov dword [eax + 4], edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov dword [edi - 0x10], edx
mov dword [edi - 4], esi
cmp ecx, dword [0x6d535008]
jb 0x6d531b66
push 0xffffffffffffffff
mov eax, dword [0x6d535010]
push eax
mov ebp, dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
call ebp
cmp dword [0x6d535014], 0xffff
jne 0x6d531c09
mov eax, dword [0x6d535010]
mov ebp, dword [sym.imp.KERNEL32.DLL_ReleaseMutex]
push eax
call ebp
cmp dword [0x6d537df0], 0xffffffff
je 0x6d531bf3
push 0x31f
push 0x6d5370c0
push 0x6d537784
call fcn.6d533090
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.DLL_LocalFree]
mov eax, 0x1008
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x14
mov eax, dword [0x6d535020]
mov ecx, dword [0x6d535014]
sub ecx, dword [0x6d535018]
cmp ecx, 0xffffffff
jne 0x6d531cd9
mov eax, dword [0x6d535018]
shl eax, 3
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_LocalAlloc]
test eax, eax
jne 0x6d531c73
mov eax, dword [0x6d535010]
mov ebp, dword [sym.imp.KERNEL32.DLL_ReleaseMutex]
push eax
call ebp
push 0x1010
push 0x6d537498
push 0x6d537758
push 0
call dword [sym.imp.USER32.DLL_MessageBoxA]
push ebx
call dword [sym.imp.KERNEL32.DLL_LocalFree]
mov eax, 0x1008
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x14
mov ecx, dword [0x6d535018]
mov edi, eax
shl ecx, 2
mov esi, dword [0x6d535020]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x6d535018]
mov dword [esp + 0x10], ecx
add ecx, ecx
cmp ecx, dword [0x6d535018]
jbe 0x6d531cba
mov ecx, dword [esp + 0x10]
mov dword [eax + ecx*4], 0
mov ecx, dword [0x6d535018]
add ecx, ecx
inc dword [esp + 0x10]
cmp ecx, dword [esp + 0x10]
ja 0x6d531c9d
mov ecx, dword [0x6d535024]
mov dword [0x6d535020], eax
shl dword [0x6d535018], 1
mov dword [ecx*4 + 0x6d535028], eax
inc dword [0x6d535024]
mov ebp, dword [0x6d53501c]
inc ebp
cmp ebp, dword [0x6d535018]
jne 0x6d531ced
mov ebp, 1
cmp dword [eax + ebp*4], 0
jne 0x6d531cdf
mov dword [eax + ebp*4], ebx
mov eax, dword [0x6d535010]
push eax
mov dword [0x6d53501c], ebp
inc dword [0x6d535014]
call dword [sym.imp.KERNEL32.DLL_ReleaseMutex]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
mov word [esp + 0x1c], cx
mov edx, dword [esp + 0x30]
mov word [esp + 0x1e], ax
mov esi, dword [esp + 0x34]
mov word [esp + 0x20], dx
push 0
mov word [esp + 0x26], si
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.DLL_CreateEventA]
mov dword [ebx + 4], eax
test eax, eax
jne 0x6d531d83
cmp dword [0x6d537df0], 0xffffffff
je 0x6d531d6e
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
push 0x348
push 0x6d5370c0
push 0x6d537724
call fcn.6d533090
add esp, 0x10
push ebp
call sym.MZKERNEL32.DLL_CAPI_RELEASE
mov eax, 0x1008
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x14
add esi, 0x16
cmp esi, 0x200
jge 0x6d531d93
mov esi, 0x200
add esi, 8
push 0
push 0
mov dword [ebx + 0xc], esi
push 0
mov dword [ebx + 0x10], esi
call dword [sym.imp.KERNEL32.DLL_CreateMutexA]
mov dword [ebx + 0x14], eax
test eax, eax
jne 0x6d531deb
cmp dword [0x6d537df0], 0xffffffff
je 0x6d531dd6
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
push 0x360
push 0x6d5370c0
push 0x6d5376f0
call fcn.6d533090
add esp, 0x10
push ebp
call sym.MZKERNEL32.DLL_CAPI_RELEASE
mov eax, 0x1008
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x14
push 0x104
push 0
call dword [sym.imp.KERNEL32.DLL_LocalAlloc]
mov dword [ebx + 0x24], eax
test eax, eax
jne 0x6d531e2b
push 0x1010
push 0x6d537498
push 0x6d5376c4
push 0
call dword [sym.imp.USER32.DLL_MessageBoxA]
push ebp
call sym.MZKERNEL32.DLL_CAPI_RELEASE
mov eax, 0x1008
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x14
mov dword [ebx + 0x20], 0x41
mov eax, dword [ebx + 0x10]
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_LocalAlloc]
test eax, eax
jne 0x6d531e6e
push 0x1010
push 0x6d537498
push 0x6d537698
push 0
call dword [sym.imp.USER32.DLL_MessageBoxA]
push ebp
call sym.MZKERNEL32.DLL_CAPI_RELEASE
mov eax, 0x1008
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x14
mov dword [eax + 4], 0
mov ecx, dword [ebx + 0x18]
mov word [eax], cx
mov dword [esp + 0x18], 0
mov edx, dword [ebx + 0x1c]
mov dword [ebx + 0x18], edx
mov edx, dword [ebx + 0x1c]
mov ecx, dword [ebx + 0x24]
mov dword [esp + 0x14], 0
mov dword [ecx + edx*4], eax
inc dword [ebx + 0x1c]
mov dword [ebx + 0x28], 0
cmp dword [0x6d535008], 0
jbe 0x6d53206d
mov edi, 0x6d5350d4
lea esi, [ebx + 0x16c]
cmp dword [edi + 4], 0
je 0x6d532053
push 0
mov eax, dword [edi]
push 0x40000080
push 3
push 0
push 0
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
cmp eax, 0xffffffff
mov ecx, eax
mov dword [esi], eax
jne 0x6d531f1d
cmp dword [0x6d537df0], 0xffffffff
je 0x6d532053
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
mov eax, dword [edi]
push eax
push 0x38a
push 0x6d5370c0
push 0x6d537660
call fcn.6d533090
add esp, 0x14
jmp 0x6d532053
lea eax, [esp + 0x10]
push 0
lea edx, [esp + 0x20]
push eax
push 0
push 0
push 8
push edx
push 0x80012004
push ecx
call dword [sym.imp.KERNEL32.DLL_DeviceIoControl]
test eax, eax
jne 0x6d531fab
call dword [sym.imp.KERNEL32.DLL_GetLastError]
cmp dword [0x6d537df0], 0xffffffff
mov dword [esp + 0x18], eax
je 0x6d531f6d
push eax
mov ecx, dword [edi]
push ecx
push 0x393
push 0x6d5370c0
push 0x6d53761c
call fcn.6d533090
add esp, 0x14
mov eax, dword [esi]
push eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
cmp dword [esp + 0x18], 0
mov dword [esi], 0xffffffff
jne 0x6d531f90
mov dword [esp + 0x18], 0
jmp 0x6d532053
mov eax, dword [esp + 0x18]
push 0x6d537000
push eax
call section..Upack
mov dword [esp + 0x20], eax
add esp, 8
jmp 0x6d532053
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.DLL_CreateMutexA]
mov dword [esi + 4], eax
test eax, eax
je 0x6d53213d
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.DLL_CreateEventA]
mov dword [esi + 0x18], eax
test eax, eax
je 0x6d532179
mov eax, dword [ebx + 0xc]
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_LocalAlloc]
mov dword [esi + 0x1c], eax
test eax, eax
je 0x6d5321b5
push 0
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.DLL_CreateEventA]
mov dword [esi + 0x30], eax
test eax, eax
je 0x6d5321e1
mov eax, dword [ebx + 0x10]
push eax
push 0
call dword [sym.imp.KERNEL32.DLL_LocalAlloc]
test eax, eax
je 0x6d53221d
mov ecx, dword [ebx + 0x1c]
mov dword [esi + 0x3c], ecx
mov dword [eax + 4], 0
mov ecx, dword [ebx + 0x1c]
mov edx, dword [ebx + 0x24]
mov dword [edx + ecx*4], eax
inc dword [ebx + 0x1c]
mov eax, dword [esi + 0x30]
mov ecx, dword [ebx + 0x28]
mov dword [ebx + ecx*4 + 0x2c], eax
mov ecx, dword [ebx + 0x28]
mov al, byte [esp + 0x14]
mov byte [ecx + ebx + 0x12c], al
inc dword [ebx + 0x28]
add edi, 0xc
add esi, 0x40
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, dword [0x6d535008]
jb 0x6d531ebc
xor edi, edi
cmp dword [0x6d535008], edi
jbe 0x6d5320ef
lea esi, [ebx + 0x16c]
cmp dword [esi], 0xffffffff
je 0x6d5320e3
lea ecx, [esi + 0x38]
mov dword [ecx], 0
mov eax, dword [esi + 0x3c]
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + eax*4]
lea edx, [esi + 0x20]
mov word [eax + 8], 0
mov dword [esi + 0x34], 0
push edx
mov eax, dword [ebx + 0x10]
push ecx
sub eax, 8
mov ecx, dword [ebx + 0x24]
push eax
mov edx, dword [esi + 0x3c]
mov eax, dword [ecx + edx*4]
mov ecx, dword [esi]
add eax, 8
push eax
push ecx
call dword [sym.imp.KERNEL32.DLL_ReadFile]
test eax, eax
jne 0x6d5320d0
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [esi + 0x34], eax
cmp dword [esi + 0x34], 0x3e5
je 0x6d5320e3
mov eax, dword [esi + 0x30]
push eax
call dword [sym.imp.KERNEL32.DLL_SetEvent]
add esi, 0x40
inc edi
cmp edi, dword [0x6d535008]
jb 0x6d53207d
cmp dword [ebx + 0x28], 0
jne 0x6d532249
cmp dword [0x6d537df0], 0xffffffff
je 0x6d532119
push 0x3e5
push 0x6d5370c0
push 0x6d537588
call fcn.6d533090
add esp, 0xc
push ebp
call sym.MZKERNEL32.DLL_CAPI_RELEASE
cmp dword [esp + 0x18], 0
mov eax, 0x1009
je 0x6d532279
mov eax, dword [esp + 0x18]
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x14
cmp dword [0x6d537df0], 0xffffffff
je 0x6d532164
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
push 0x39e
push 0x6d5370c0
push 0x6d5376f0
call fcn.6d533090
add esp, 0x10
push ebp
call sym.MZKERNEL32.DLL_CAPI_RELEASE
mov eax, 0x1008
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x14
cmp dword [0x6d537df0], 0xffffffff
je 0x6d5321a0
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
push 0x3a6
push 0x6d5370c0
push 0x6d537724
call fcn.6d533090
add esp, 0x10
push ebp
call sym.MZKERNEL32.DLL_CAPI_RELEASE
mov eax, 0x1008
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x14
push 0x1010
push 0x6d537498
push 0x6d5375f0
push 0
call dword [sym.imp.USER32.DLL_MessageBoxA]
push ebp
call sym.MZKERNEL32.DLL_CAPI_RELEASE
mov eax, 0x1008
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x14
cmp dword [0x6d537df0], 0xffffffff
je 0x6d532208
call dword [sym.imp.KERNEL32.DLL_GetLastError]
push eax
push 0x3b5
push 0x6d5370c0
push 0x6d537724
call fcn.6d533090
add esp, 0x10
push ebp
call sym.MZKERNEL32.DLL_CAPI_RELEASE
mov eax, 0x1008
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x14
push 0x1010
push 0x6d537498
push 0x6d5375c4
push 0
call dword [sym.imp.USER32.DLL_MessageBoxA]
push ebp
call sym.MZKERNEL32.DLL_CAPI_RELEASE
mov eax, 0x1008
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x14
mov eax, dword [esp + 0x38]
mov dword [ebx + 8], 1
mov dword [eax], ebp
cmp dword [0x6d537df0], 0xffffffff
je 0x6d532277
push ebp
push 0x3ed
push 0x6d5370c0
push 0x6d537550
call fcn.6d533090
add esp, 0x10
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x14
ret 0x14