Function at 0x1015502
Capabilities:
Delete file

Disassembly:
push 0x14
push 0x10024e0
call fcn.0100bb10
xor ebx, ebx
mov dword [ebp - 0x24], ebx
mov esi, dword [ebp + 8]
cmp esi, ebx
jne 0x1015521
push 0xd
jmp 0x101560c
mov eax, dword [esi + 0xc]
cmp eax, ebx
jne 0x101552f
cmp dword [esi + 8], ebx
je 0x101551a
cmp eax, ebx
jbe 0x1015536
cmp dword [esi + 8], ebx
ja 0x101551a
mov edi, 0x458
cmp dword [esi + 8], ebx
jbe 0x1015559
mov eax, dword [esi + 0x10]
push dword [eax + ebx*4]
call fcn.0100b244
pop ecx
lea edi, [edi + eax*2 + 9]
and edi, 0xfffffff8
inc ebx
cmp ebx, dword [esi + 8]
jb 0x1015540
xor ebx, ebx
cmp dword [esi + 0xc], ebx
jbe 0x1015579
mov eax, dword [esi + 0x14]
push dword [eax + ebx*4]
call fcn.0100b244
pop ecx
lea edi, [edi + eax*2 + 9]
and edi, 0xfffffff8
inc ebx
cmp ebx, dword [esi + 0xc]
jb 0x1015560
mov eax, dword [esi + 0x1c]
test eax, eax
je 0x101558e
push eax
call fcn.0100b244
pop ecx
lea edi, [edi + eax*2 + 9]
and edi, 0xfffffff8
mov eax, dword [esi + 0x28]
test eax, eax
je 0x10155a3
push eax
call fcn.0100b244
pop ecx
lea edi, [edi + eax*2 + 9]
and edi, 0xfffffff8
mov eax, dword [esi + 0x24]
test eax, eax
je 0x10155b8
push eax
call fcn.0100b244
pop ecx
lea edi, [edi + eax*2 + 9]
and edi, 0xfffffff8
mov eax, dword [esi + 0x18]
test eax, eax
je 0x10155cd
push eax
call fcn.0100b244
pop ecx
lea edi, [edi + eax*2 + 9]
and edi, 0xfffffff8
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x10155e2
push eax
call fcn.0100b244
pop ecx
lea edi, [edi + eax*2 + 9]
and edi, 0xfffffff8
mov eax, dword [esi + 0x20]
test eax, eax
je 0x10155f7
push eax
call fcn.0100b244
pop ecx
lea edi, [edi + eax*2 + 9]
and edi, 0xfffffff8
add edi, 0x1e8
push edi
call fcn.0100de69
pop ecx
mov ebx, eax
test ebx, ebx
jne 0x1015612
push 0xe
pop eax
jmp 0x1015b9e
mov ecx, edi
xor eax, eax
mov edi, ebx
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov dword [0x10263e0], ebx
add ebx, 0x458
mov eax, 0x250
mov ecx, dword [0x10263e0]
or dword [eax + ecx], 0xffffffff
mov ecx, dword [0x10263e0]
or dword [eax + ecx + 4], 0xffffffff
add eax, 8
cmp eax, 0x450
jb 0x1015637
and dword [ebp - 0x1c], 0
cmp dword [esi + 8], 0
jbe 0x10156a6
push 0xc
pop edi
mov eax, dword [0x10263e0]
mov dword [eax + edi], ebx
mov eax, dword [esi + 0x10]
push dword [edi + eax - 0xc]
mov eax, dword [0x10263e0]
push dword [eax + edi]
call fcn.0100b525
mov eax, dword [0x10263e0]
push dword [eax + edi]
call fcn.0100b244
add esp, 0xc
lea eax, [eax + eax + 9]
and eax, 0xfffffff8
add ebx, eax
inc dword [ebp - 0x1c]
add edi, 4
mov eax, dword [ebp - 0x1c]
cmp eax, dword [esi + 8]
jb 0x1015663
and dword [ebp - 0x1c], 0
cmp dword [esi + 0xc], 0
jbe 0x10156fe
mov eax, dword [esi + 8]
mov ecx, dword [ebp - 0x1c]
add eax, ecx
lea edi, [eax*4 + 0x10c]
mov eax, dword [0x10263e0]
mov dword [edi + eax], ebx
mov eax, dword [esi + 0x14]
push dword [eax + ecx*4]
mov eax, dword [0x10263e0]
push dword [edi + eax]
call fcn.0100b525
mov eax, dword [0x10263e0]
push dword [edi + eax]
call fcn.0100b244
add esp, 0xc
lea eax, [eax + eax + 9]
and eax, 0xfffffff8
add ebx, eax
inc dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [esi + 0xc]
jb 0x10156b0
xor edi, edi
cmp dword [esi + 0x1c], edi
je 0x101573f
mov eax, dword [0x10263e0]
mov dword [eax + 0x210], ebx
push dword [esi + 0x1c]
mov eax, dword [0x10263e0]
push dword [eax + 0x210]
call fcn.0100b525
mov eax, dword [0x10263e0]
push dword [eax + 0x210]
call fcn.0100b244
add esp, 0xc
lea eax, [eax + eax + 9]
and eax, 0xfffffff8
add ebx, eax
cmp dword [esi + 0x24], edi
je 0x101577e
mov eax, dword [0x10263e0]
mov dword [eax + 0x214], ebx
push dword [esi + 0x24]
mov eax, dword [0x10263e0]
push dword [eax + 0x214]
call fcn.0100b525
mov eax, dword [0x10263e0]
push dword [eax + 0x214]
call fcn.0100b244
add esp, 0xc
lea eax, [eax + eax + 9]
and eax, 0xfffffff8
add ebx, eax
cmp dword [esi + 0x28], edi
je 0x10157bd
mov eax, dword [0x10263e0]
mov dword [eax + 0x218], ebx
push dword [esi + 0x28]
mov eax, dword [0x10263e0]
push dword [eax + 0x218]
call fcn.0100b525
mov eax, dword [0x10263e0]
push dword [eax + 0x218]
call fcn.0100b244
add esp, 0xc
lea eax, [eax + eax + 9]
and eax, 0xfffffff8
add ebx, eax
cmp dword [esi + 0x18], edi
je 0x10157fc
mov eax, dword [0x10263e0]
mov dword [eax + 0x21c], ebx
push dword [esi + 0x18]
mov eax, dword [0x10263e0]
push dword [eax + 0x21c]
call fcn.0100b525
mov eax, dword [0x10263e0]
push dword [eax + 0x21c]
call fcn.0100b244
add esp, 0xc
lea eax, [eax + eax + 9]
and eax, 0xfffffff8
add ebx, eax
cmp dword [esi + 0x2c], edi
je 0x101583b
mov eax, dword [0x10263e0]
mov dword [eax + 0x224], ebx
push dword [esi + 0x2c]
mov eax, dword [0x10263e0]
push dword [eax + 0x224]
call fcn.0100b525
mov eax, dword [0x10263e0]
push dword [eax + 0x224]
call fcn.0100b244
add esp, 0xc
lea eax, [eax + eax + 9]
and eax, 0xfffffff8
add ebx, eax
cmp dword [esi + 0x20], edi
je 0x101587a
mov eax, dword [0x10263e0]
mov dword [eax + 0x220], ebx
push dword [esi + 0x20]
mov eax, dword [0x10263e0]
push dword [eax + 0x220]
call fcn.0100b525
mov eax, dword [0x10263e0]
push dword [eax + 0x220]
call fcn.0100b244
add esp, 0xc
lea eax, [eax + eax + 9]
and eax, 0xfffffff8
add ebx, eax
mov eax, dword [esi + 8]
mov ecx, dword [0x10263e0]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0xc]
mov ecx, dword [0x10263e0]
mov dword [ecx + 8], eax
mov eax, dword [esi + 0x30]
mov ecx, dword [0x10263e0]
mov dword [ecx + 0x230], eax
mov eax, dword [esi + 0x34]
mov ecx, dword [0x10263e0]
mov dword [ecx + 0x234], eax
mov eax, dword [esi + 0x38]
mov ecx, dword [0x10263e0]
mov dword [ecx + 0x238], eax
mov eax, dword [esi + 0x3c]
mov ecx, dword [0x10263e0]
mov dword [ecx + 0x23c], eax
mov eax, dword [esi + 0x50]
mov ecx, dword [0x10263e0]
mov dword [ecx + 0x240], eax
mov eax, dword [esi + 4]
mov ecx, dword [0x10263e0]
mov dword [ecx + 0x228], eax
mov eax, dword [esi + 0x54]
mov ecx, dword [0x10263e0]
mov dword [ecx + 0x450], eax
push 0x28
pop ecx
xor eax, eax
mov edi, 0x1028480
rep stosd dword es:[edi], eax
mov eax, 0x10284c8
mov dword [0x10284cc], eax
mov dword [0x10284c8], eax
mov eax, 0x10284d0
mov dword [0x10284d4], eax
mov dword [0x10284d0], eax
mov eax, 0x10284d8
mov dword [0x10284dc], eax
mov dword [0x10284d8], eax
mov eax, 0x10284e0
mov dword [0x10284e4], eax
mov dword [0x10284e0], eax
mov eax, 0x10284e8
mov dword [0x10284ec], eax
mov dword [0x10284e8], eax
mov eax, 0x10284f0
mov dword [0x10284f4], eax
mov dword [0x10284f0], eax
mov eax, 0x10284f8
mov dword [0x10284fc], eax
mov dword [0x10284f8], eax
mov eax, 0x1028500
mov dword [0x1028504], eax
mov dword [0x1028500], eax
mov eax, 0x1028508
mov dword [0x102850c], eax
mov dword [0x1028508], eax
mov eax, 0x1028510
mov dword [0x1028514], eax
mov dword [0x1028510], eax
mov dword [0x10284c0], ebx
lea edi, [ebx + 0x100]
mov dword [0x10284c4], edi
push 0x3a
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
xor edx, edx
mov ecx, dword [0x10284c4]
add ecx, eax
mov dword [ecx + 4], ecx
mov ecx, dword [0x10284c4]
add ecx, eax
mov edi, dword [ecx + 4]
mov dword [ecx], edi
add eax, 8
cmp eax, 0xe8
jb 0x10159b8
test byte [esi + 0x50], 0x80
je 0x10159f1
cmp dword [esi + 0x24], edx
je 0x10159f1
mov eax, dword [0x10263e0]
or byte [eax + 0x240], 0x80
mov ebx, 0x400
test dword [esi + 0x50], ebx
je 0x1015a0b
cmp dword [esi + 0x20], edx
je 0x1015a0b
mov eax, dword [0x10263e0]
or dword [eax + 0x240], ebx
mov ecx, 0x1000
test dword [esi + 0x50], ecx
je 0x1015a25
cmp dword [esi + 0x2c], edx
je 0x1015a25
mov eax, dword [0x10263e0]
or dword [eax + 0x240], ecx
push ebx
mov edi, 0x1026400
push edi
call fcn.01015bab
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x1015b27
push 0x10024d8
push edi
call fcn.0100c4ba
pop ecx
pop ecx
mov dword [0x1028490], eax
test eax, eax
jne 0x1015a5b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x1015b27
mov byte [0x1028494], 0
mov edi, dword [0x10284c0]
push 0x40
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, 0x200
test dword [esi + 0x50], ecx
je 0x1015a8e
mov eax, dword [0x10263e0]
or dword [eax + 0x240], ecx
test byte [esi + 0x50], 8
je 0x1015aab
mov eax, dword [0x10263e0]
or dword [eax + 0x240], 8
mov eax, dword [0x10263e0]
or dword [eax + 0x240], ebx
mov eax, dword [0x10263e0]
test byte [eax + 0x240], 0x20
je 0x1015ae4
mov byte [0x10263e4], 1
mov ecx, dword [esi + 0x40]
mov dword [0x10263e8], ecx
mov ecx, dword [esi + 0x44]
mov dword [0x10263ec], ecx
mov ecx, dword [esi + 0x48]
mov dword [0x10263f0], ecx
mov ecx, dword [esi + 0x4c]
mov dword [0x10263f4], ecx
test byte [eax + 0x241], 8
je 0x1015af8
push eax
call fcn.010229e1
mov dword [ebp - 0x20], eax
jmp 0x1015b27
mov dword [ebp - 0x24], 1
push 0x1028460
call dword [sym.imp.ntdll.dll_RtlInitializeCriticalSection]
push dword [0x10263e0]
call fcn.010151d9
mov dword [ebp - 0x20], eax
call fcn.0101f0f3
call fcn.01019b03
call fcn.0101501f
xor esi, esi
cmp dword [ebp - 0x20], esi
je 0x1015b9b
mov dword [ebp - 4], esi
mov eax, dword [0x10263e0]
mov eax, dword [eax + 0x22c]
cmp eax, esi
je 0x1015b47
push eax
call fcn.0100c3d7
pop ecx
cmp dword [ebp - 0x24], esi
je 0x1015b5c
call fcn.01016c97
push 0x1028460
call dword [sym.imp.ntdll.dll_RtlDeleteCriticalSection]
mov eax, dword [0x1028490]
cmp eax, esi
je 0x1015b78
push eax
call fcn.0100c3d7
mov dword [esp], 0x1026400
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [0x10263e0]
cmp eax, esi
je 0x1015b97
push eax
call fcn.0100dc95
pop ecx
mov dword [0x10263e0], esi
jmp 0x1015b97
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x20]
call fcn.0100bb4b
ret 4