Function at 0x4c8240
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x5b4368
push 0x553d69
mov eax, dword fs:[0]
push eax
sub esp, 0x288
mov eax, dword [0x5c04b4]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x1c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov edi, ecx
mov dword [ebp - 0x284], edi
lea esi, [edi + 0x80]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push esi
cmp byte [edi + 0xac], 0
jne 0x4c84da
mov byte [edi + 0xac], 1
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [ebp - 0x288], 0
mov dword [ebp - 4], 0
lea ebx, [ebx]
mov eax, dword [edi + 0xb0]
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x288], eax
xor eax, eax
mov word [ebp - 0x6c], ax
push 0x4c
push eax
lea eax, [ebp - 0x6a]
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
xor bl, bl
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [edi + 0xa0]
mov dword [ebp - 0x294], eax
test eax, eax
je 0x4c834d
mov edx, dword [edi + 0x9c]
mov eax, edx
lea ebx, [eax + 2]
jmp 0x4c8310
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c8310
sub eax, ebx
sar eax, 1
cmp eax, 0x27
lea eax, [ebp - 0x6c]
jae 0x4c8336
push edx
push 0x27
push eax
call dword [sym.imp.MSVCR120.dll_wcscpy_s]
add esp, 0xc
jmp 0x4c834b
push 0x26
push edx
push 0x27
push eax
call dword [sym.imp.MSVCR120.dll_wcsncpy_s]
add esp, 0x10
xor eax, eax
mov word [ebp - 0x20], ax
mov bl, 1
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [ebp - 0x279], bl
test bl, bl
je 0x4c8475
xor eax, eax
mov word [ebp - 0x278], ax
push 0x208
push eax
lea eax, [ebp - 0x276]
push eax
call sub.MSVCR120.dll_memset
add esp, 8
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x6c]
push eax
mov ecx, edi
call fcn.004c8500
mov byte [ebp - 0x27a], al
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebp - 0x6c]
push eax
mov ecx, edi
call fcn.004c8170
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4c841a
mov esi, dword [edi + 0xa0]
sub esi, ebx
dec esi
mov ecx, 1
mov dword [ebp - 0x290], ecx
imul edx, ebx, 0x1c0
add edx, dword [edi + 0x9c]
mov dword [ebp - 0x28c], edx
mov eax, ecx
dec ecx
mov dword [ebp - 0x290], ecx
test eax, eax
je 0x4c83ec
add edx, 0x1c0
jmp 0x4c83d1
test esi, esi
je 0x4c8414
imul ecx, ebx, 0x1c0
add ecx, dword [edi + 0x9c]
imul eax, esi, 0x1c0
push eax
lea eax, [ecx + 0x1c0]
push eax
push ecx
call dword [sym.imp.MSVCR120.dll_memmove]
add esp, 0xc
dec dword [edi + 0xa0]
lea esi, [edi + 0x80]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp byte [ebp - 0x27a], 0
jne 0x4c843e
push 0xf0000de
push 1
call fcn.004c8b70
jmp 0x4c8475
lea eax, [ebp - 0x278]
push eax
mov ecx, edi
call fcn.004c8700
xor ecx, ecx
test al, al
setne cl
add ecx, 0xf0000df
push ecx
test al, al
sete al
movzx eax, al
push eax
call fcn.004c8b70
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 0x280]
cmp dword [edi + 0xb0], eax
jne 0x4c82c0
cmp byte [ebp - 0x279], 0
jne 0x4c82c0
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c84c5
lea esi, [edi + 0x80]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [edi + 0xac], 0
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x1c]
xor ecx, ebp
call fcn.00553510
mov esp, ebp
pop ebp
ret