Function at 0x4b6420
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
mov esi, dword [ebp + 8]
lea eax, [esi + 4]
push edi
push eax
mov dword [esp + 0x28], eax
call dword [sym.imp.KERNEL32.DLL_EnterCriticalSection]
mov eax, dword [0x50cccc]
mov edx, dword [eax + 0xc]
mov ecx, 0x50cccc
call edx
add eax, 0x10
mov dword [esp + 0x28], eax
call fcn.0049f590
mov dword [esp + 0x30], eax
mov byte [eax + 0x1d], 1
mov eax, dword [esp + 0x30]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x30]
mov dword [eax], eax
mov eax, dword [esp + 0x30]
mov dword [eax + 8], eax
mov eax, dword [0x50cccc]
mov edx, dword [eax + 0xc]
mov ecx, 0x50cccc
mov dword [esp + 0x34], 0
call edx
mov ebx, eax
mov eax, dword [0x50cccc]
mov edx, dword [eax + 0xc]
add ebx, 0x10
mov ecx, 0x50cccc
mov dword [esp + 0xc], ebx
call edx
add eax, 0x10
mov dword [esp + 0x14], eax
lea eax, [esi + 0x2c]
lea edi, [esp + 0x14]
call fcn.0041f120
mov edi, dword [esp + 0x14]
push edi
call dword [sym.imp.KERNEL32.DLL_DeleteFileW]
mov eax, edi
lea ecx, [esp + 0x1c]
call fcn.004acc90
mov eax, dword [eax]
push eax
call fcn.004acf60
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 4
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4b64f7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor edi, edi
mov dword [esp + 0x10], edi
mov eax, dword [esi + 0x20]
test eax, eax
mov dword [esp + 0x1c], edi
je 0x4b6a77
mov ecx, dword [esi + 0x24]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jae 0x4b6a77
mov eax, dword [esi + 0x20]
test eax, eax
je 0x4b654b
mov ecx, dword [esi + 0x24]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x4b6550
call fcn.004bea52
mov esi, dword [esi + 0x20]
add esi, dword [esp + 0x10]
lea edx, [esp + 0x28]
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push ecx
push 0x4f7b44
push edx
call fcn.0044b1a0
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4b6589
mov ecx, dword [esi + 0x20]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push 0x4f7b5c
lea eax, [esp + 0x30]
push eax
mov eax, dword [esi]
call fcn.0044b1a0
xor ebx, ebx
mov dword [esp + 0x18], ebx
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4b6913
mov ecx, dword [esi + 0x20]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jae 0x4b6913
mov ecx, dword [esi]
push ebx
push ecx
push 0x4f7b68
lea edi, [esp + 0x18]
call fcn.0041f070
mov edx, dword [esi]
add esp, 0xc
push edx
push 0x4f7c7c
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x18]
call fcn.0044b380
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4b6616
mov ecx, dword [esi + 0x20]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b661b
call fcn.004bea52
mov ecx, dword [esi + 0x1c]
mov edi, dword [esp + 0x18]
mov edx, dword [edi + ecx]
push edx
push 0x4f0244
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x18]
call fcn.0044b380
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4b665a
mov ecx, dword [esi + 0x20]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b665f
call fcn.004bea52
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx + edi + 8]
push edx
push 0x4f7b78
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x18]
call fcn.0044b380
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4b669b
mov ecx, dword [esi + 0x20]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b66a0
call fcn.004bea52
mov ecx, dword [esi + 0x1c]
mov edx, dword [edi + ecx + 0xc]
push edx
push 0x4f7b84
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x18]
call fcn.0044b380
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4b66dc
mov ecx, dword [esi + 0x20]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b66e1
call fcn.004bea52
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx + edi + 0x10]
push edx
push 0x4f7b98
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x18]
call fcn.0044b380
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4b671d
mov ecx, dword [esi + 0x20]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b6722
call fcn.004bea52
mov ecx, dword [esi + 0x1c]
mov edx, dword [edi + ecx + 0x14]
push edx
push 0x4f7ba8
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x18]
call fcn.0044b380
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4b675e
mov ecx, dword [esi + 0x20]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b6763
call fcn.004bea52
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx + edi + 0x20]
push edx
push 0x4f7bb8
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x18]
call fcn.0044b380
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4b679f
mov ecx, dword [esi + 0x20]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b67a4
call fcn.004bea52
mov ecx, dword [esi + 0x1c]
mov edx, dword [edi + ecx + 0x24]
push edx
push 0x4f7bc4
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x18]
call fcn.0044b380
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4b67e0
mov ecx, dword [esi + 0x20]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b67e5
call fcn.004bea52
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx + edi + 0x28]
push edx
push 0x4f7bd8
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x18]
call fcn.0044b380
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4b6821
mov ecx, dword [esi + 0x20]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b6826
call fcn.004bea52
mov ecx, dword [esi + 0x1c]
mov edx, dword [edi + ecx + 0x2c]
push edx
push 0x4f7be0
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x18]
call fcn.0044b380
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4b6862
mov ecx, dword [esi + 0x20]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b6867
call fcn.004bea52
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx + edi + 0x3c]
push edx
push 0x4f7bf0
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x18]
call fcn.0044b380
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4b68a3
mov ecx, dword [esi + 0x20]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b68a8
call fcn.004bea52
mov ecx, dword [esi + 0x1c]
mov edx, dword [edi + ecx + 0x40]
push edx
push 0x4f7bf8
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x18]
call fcn.0044b380
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x4b68e4
mov ecx, dword [esi + 0x20]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b68e9
call fcn.004bea52
mov ecx, dword [esi + 0x1c]
mov edx, dword [ecx + edi + 0x30]
push edx
push 0x4f7c04
lea eax, [esp + 0x30]
push eax
mov eax, dword [esp + 0x18]
call fcn.0044b380
add ebx, 1
add edi, 0x44
mov dword [esp + 0x18], edi
jmp 0x4b65a1
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4b692f
mov ecx, dword [esi + 0x10]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, dword [esi]
push 0x4f7c20
lea ecx, [esp + 0x30]
push ecx
call fcn.0044b1a0
xor ebx, ebx
mov dword [esp + 0x18], ebx
jmp 0x4b6950
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4b6a5f
mov ecx, dword [esi + 0x10]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jae 0x4b6a5f
mov edx, dword [esi]
push ebx
push edx
push 0x4f7c3c
lea edi, [esp + 0x18]
call fcn.0041f070
mov eax, dword [esi + 0xc]
add esp, 0xc
test eax, eax
je 0x4b69ad
mov ecx, dword [esi + 0x10]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b69b2
call fcn.004bea52
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + eax]
mov eax, dword [esp + 0xc]
push ecx
push 0x4f7c5c
lea edx, [esp + 0x30]
push edx
call fcn.0044b380
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4b69f0
mov ecx, dword [esi + 0x10]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b69f5
call fcn.004bea52
mov eax, dword [esi + 0xc]
mov ecx, dword [edi + eax + 4]
mov eax, dword [esp + 0xc]
push ecx
push 0x4f7c68
lea edx, [esp + 0x30]
push edx
call fcn.0044b380
mov eax, dword [esi + 0xc]
test eax, eax
je 0x4b6a30
mov ecx, dword [esi + 0x10]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x4b6a35
call fcn.004bea52
mov eax, dword [esi + 0xc]
mov ecx, dword [edi + eax + 8]
mov eax, dword [esp + 0xc]
push ecx
push 0x4f7c74
lea edx, [esp + 0x30]
push edx
call fcn.0044b380
add ebx, 1
add edi, 0xc
mov dword [esp + 0x18], edi
jmp 0x4b6950
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0xc]
mov esi, dword [ebp + 8]
add edi, 1
add dword [esp + 0x10], 0x28
jmp 0x4b64fd
mov esi, dword [esp + 0x14]
push esi
lea eax, [esp + 0x2c]
push eax
call fcn.0044b400
lea eax, [esi - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4b6aa2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add ebx, 0xfffffff0
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4b6abe
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
mov eax, dword [esp + 0x30]
mov edx, dword [eax]
push eax
lea ecx, [esp + 0x30]
push ecx
push edx
mov esi, ecx
push esi
lea eax, [esp + 0x2c]
push eax
mov edi, ecx
call fcn.0044c1b0
mov ecx, dword [esp + 0x30]
push ecx
call fcn.004bef97
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
add esp, 4
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4b6b11
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24]
push ecx
call dword [sym.imp.KERNEL32.DLL_LeaveCriticalSection]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4