Function at 0x10028f30
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1004de35
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
mov eax, dword [0x1005d500]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
xor edi, edi
mov dword [ebp - 0x90], edi
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x88], edi
mov dword [ebp - 4], edi
mov eax, dword [0x100a20e8]
mov esi, dword [eax]
xor ebx, ebx
cmp esi, eax
je 0x10029099
push 0xffffffffffffffff
lea eax, [esi + 0xc]
push 0
mov edi, 0xf
push eax
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], 0
mov byte [ebp - 0x2c], 0
call fcn.10002de0
mov byte [ebp - 4], 1
cmp dword [ebp - 0x18], 0x10
mov eax, dword [ebp - 0x2c]
jae 0x10028fb9
lea eax, [ebp - 0x2c]
push 0
push eax
call fcn.10036e6b
add esp, 8
cmp eax, 0xffffffff
jne 0x10028fd2
mov dword [esi + 0x28], 0
jmp 0x10029030
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x6c], esp
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x2c]
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], 0
push eax
mov byte [ecx], 0
call fcn.10002de0
lea ecx, [ebp - 0x48]
push ecx
mov ecx, ebx
call fcn.10029620
mov byte [ebp - 4], 2
cmp dword [ebp - 0x38], 0
je 0x1002901e
lea ecx, [ebp - 0x48]
lea edi, [ebp - 0x90]
mov dword [esi + 0x28], 1
call fcn.1000b3c0
cmp dword [ebp - 0x34], 0x10
jb 0x10029030
mov edx, dword [ebp - 0x48]
push edx
call fcn.10032d10
add esp, 4
inc ebx
mov byte [ebp - 4], 0
cmp dword [ebp - 0x18], 0x10
jb 0x10029047
mov eax, dword [ebp - 0x2c]
push eax
call fcn.10032d10
add esp, 4
cmp byte [esi + 0x2d], 0
jne 0x10029087
mov eax, dword [esi + 8]
cmp byte [eax + 0x2d], 0
jne 0x1002906c
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x2d], 0
jne 0x10029087
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x2d], 0
je 0x10029060
jmp 0x10029087
mov eax, dword [esi + 4]
cmp byte [eax + 0x2d], 0
jne 0x10029085
cmp esi, dword [eax + 8]
jne 0x10029085
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x2d], 0
je 0x10029075
mov esi, eax
cmp esi, dword [0x100a20e8]
jne 0x10028f86
mov edi, dword [ebp - 0x90]
xor ebx, ebx
push 0x30
mov dword [ebp - 0x74], ebx
call fcn.10032ce0
add esp, 4
cmp eax, ebx
je 0x100295f0
mov dword [ebp - 0x78], eax
mov dword [eax], eax
mov eax, dword [ebp - 0x78]
mov dword [eax + 4], eax
mov eax, dword [ebp - 0x78]
mov dword [eax + 8], eax
mov ecx, dword [ebp - 0x78]
mov byte [ecx + 0x2c], 1
mov edx, dword [ebp - 0x78]
mov byte [edx + 0x2d], 1
mov byte [ebp - 4], 3
mov dword [ebp - 0x80], edi
cmp edi, dword [ebp - 0x8c]
je 0x10029273
mov eax, dword [ebp - 0x80]
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], 0
call fcn.10002de0
lea ecx, [ebp - 0x2c]
push ecx
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 4
call fcn.10029d70
mov dword [ebp - 0x98], eax
cmp eax, dword [ebp - 0x78]
je 0x100291db
mov edi, dword [eax + 0x1c]
add eax, 0xc
mov ecx, 0x10
cmp dword [eax + 0x14], ecx
jb 0x10029130
mov eax, dword [eax]
mov edx, dword [ebp - 0x1c]
cmp edx, edi
jb 0x10029139
mov edx, edi
mov esi, dword [ebp - 0x2c]
cmp dword [ebp - 0x18], ecx
jae 0x10029144
lea esi, [ebp - 0x2c]
mov ecx, eax
cmp edx, 4
jb 0x10029164
jmp 0x10029150
mov eax, dword [esi]
cmp eax, dword [ecx]
jne 0x10029168
sub edx, 4
add ecx, 4
add esi, 4
cmp edx, 4
jae 0x10029150
cmp edx, ebx
je 0x100291af
movzx ebx, byte [ecx]
movzx eax, byte [esi]
sub eax, ebx
jne 0x100291a3
cmp edx, 1
jbe 0x100291ad
movzx eax, byte [esi + 1]
movzx ebx, byte [ecx + 1]
sub eax, ebx
jne 0x100291a3
cmp edx, 2
jbe 0x100291ad
movzx eax, byte [esi + 2]
movzx ebx, byte [ecx + 2]
sub eax, ebx
jne 0x100291a3
cmp edx, 3
jbe 0x100291ad
movzx eax, byte [esi + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
sar eax, 0x1f
or eax, 1
xor ebx, ebx
jmp 0x100291b1
xor ebx, ebx
xor eax, eax
cmp eax, ebx
jne 0x100291cc
mov eax, dword [ebp - 0x1c]
cmp eax, edi
jae 0x100291c1
or eax, 0xffffffff
jmp 0x100291ca
xor edx, edx
cmp eax, edi
setne dl
mov eax, edx
cmp eax, ebx
setl al
test al, al
jne 0x100291db
lea eax, [ebp - 0x98]
jmp 0x100291ea
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x94]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x78]
je 0x100291f6
inc dword [eax + 0x28]
jmp 0x10029248
push 0xffffffffffffffff
push ebx
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x38], 0xf
mov dword [ebp - 0x3c], ebx
mov byte [ebp - 0x4c], 0
call fcn.10002de0
mov dword [ebp - 0x30], ebx
lea ecx, [ebp - 0x4c]
lea edx, [ebp - 0x7c]
mov byte [ebp - 4], 5
call fcn.1002c7d0
push eax
lea edx, [ebp - 0xac]
push edx
lea eax, [ebp - 0x7c]
push eax
call fcn.1002a130
cmp dword [ebp - 0x38], 0x10
jb 0x10029248
mov ecx, dword [ebp - 0x4c]
push ecx
call fcn.10032d10
add esp, 4
mov byte [ebp - 4], 3
cmp dword [ebp - 0x18], 0x10
jb 0x1002925e
mov edx, dword [ebp - 0x2c]
push edx
call fcn.10032d10
add esp, 4
mov eax, dword [ebp - 0x80]
add eax, 0x1c
mov dword [ebp - 0x80], eax
cmp eax, dword [ebp - 0x8c]
jne 0x100290e2
push ebx
push 0x10053510
lea ecx, [ebp - 0x68]
xor esi, esi
mov dword [ebp - 0x54], 0xf
mov dword [ebp - 0x58], ebx
mov byte [ebp - 0x68], 0
call fcn.100028f0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x78]
mov edi, dword [ecx]
cmp edi, ecx
je 0x100292fe
mov edi, edi
cmp dword [edi + 0x28], esi
jle 0x100292ba
push 0xffffffffffffffff
lea eax, [edi + 0xc]
push ebx
push eax
lea ecx, [ebp - 0x68]
call fcn.10002de0
mov esi, dword [edi + 0x28]
mov ecx, dword [ebp - 0x78]
cmp byte [edi + 0x2d], 0
jne 0x100292fa
mov eax, dword [edi + 8]
cmp byte [eax + 0x2d], 0
jne 0x100292df
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0x2d], 0
jne 0x100292fa
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0x2d], 0
je 0x100292d3
jmp 0x100292fa
mov eax, dword [edi + 4]
cmp byte [eax + 0x2d], 0
jne 0x100292f8
cmp edi, dword [eax + 8]
jne 0x100292f8
mov edi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x2d], 0
je 0x100292e8
mov edi, eax
cmp edi, ecx
jne 0x100292a0
mov eax, dword [ebp - 0x74]
mov edi, vtable.SysService.0
cmp eax, 1
jne 0x10029327
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x68]
push eax
mov ecx, 0x100a2084
call fcn.10002de0
mov dword [0x100a20e0], ebx
jmp 0x100293ec
cmp eax, ebx
jne 0x100293d1
mov dword [ebp - 0x6c], edi
lea ebx, [ebp - 0x48]
mov byte [ebp - 4], 7
call fcn.10030150
mov esi, eax
cmp esi, 0x100a2084
je 0x100293b5
cmp dword [0x100a2098], 0x10
jb 0x1002935f
mov eax, dword [0x100a2084]
push eax
call fcn.10032d10
add esp, 4
xor ebx, ebx
mov dword [0x100a2098], 0xf
mov dword [0x100a2094], ebx
mov byte [0x100a2084], bl
cmp dword [esi + 0x14], 0x10
jae 0x10029392
mov eax, dword [esi + 0x10]
inc eax
push eax
push esi
push 0x100a2084
call fcn.10034e70
add esp, 0xc
jmp 0x1002939c
mov ecx, dword [esi]
mov dword [0x100a2084], ecx
mov dword [esi], ebx
mov edx, dword [esi + 0x10]
mov dword [0x100a2094], edx
mov eax, dword [esi + 0x14]
mov dword [0x100a2098], eax
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
jmp 0x100293b7
xor ebx, ebx
cmp dword [ebp - 0x34], 0x10
jb 0x100293c9
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.10032d10
add esp, 4
mov dword [0x100a20e0], ebx
jmp 0x100293ec
push 0xffffffffffffffff
push ebx
lea edx, [ebp - 0x68]
push edx
mov ecx, 0x100a2084
call fcn.10002de0
mov dword [0x100a20e0], 1
cmp dword [0x100a2094], 0
jne 0x10029542
mov dword [ebp - 0x6c], edi
lea ebx, [ebp - 0x48]
mov byte [ebp - 4], 9
call fcn.10030150
mov esi, eax
cmp esi, 0x100a2084
je 0x10029482
mov edi, 0x10
cmp dword [0x100a2098], edi
jb 0x1002942d
mov eax, dword [0x100a2084]
push eax
call fcn.10032d10
add esp, 4
xor ebx, ebx
mov dword [0x100a2098], 0xf
mov dword [0x100a2094], ebx
mov byte [0x100a2084], bl
cmp dword [esi + 0x14], edi
jae 0x1002945f
mov eax, dword [esi + 0x10]
inc eax
push eax
push esi
push 0x100a2084
call fcn.10034e70
add esp, 0xc
jmp 0x10029468
mov eax, dword [esi]
mov dword [0x100a2084], eax
mov dword [esi], ebx
mov ecx, dword [esi + 0x10]
mov dword [0x100a2094], ecx
mov edx, dword [esi + 0x14]
mov dword [0x100a2098], edx
mov dword [esi + 0x10], ebx
mov dword [esi + 0x14], ebx
jmp 0x10029484
xor ebx, ebx
mov edi, 0x10
mov byte [ebp - 4], 9
cmp dword [ebp - 0x34], edi
jb 0x1002949e
mov eax, dword [ebp - 0x48]
push eax
call fcn.10032d10
add esp, 4
mov eax, dword [0x100a20e8]
mov dword [0x100a20e0], ebx
mov esi, dword [eax]
cmp esi, eax
je 0x10029547
xor ebx, ebx
push 0xffffffffffffffff
lea eax, [esi + 0xc]
push ebx
push eax
lea ecx, [ebp - 0x2c]
mov dword [ebp - 0x18], 0xf
mov dword [ebp - 0x1c], ebx
mov byte [ebp - 0x2c], bl
call fcn.10002de0
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x18], edi
jae 0x100294dc
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [ebp - 0x18], edi
jb 0x100294f4
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.10032d10
add esp, 4
cmp byte [esi + 0x2d], bl
jne 0x10029534
mov eax, dword [esi + 8]
cmp byte [eax + 0x2d], bl
jne 0x1002951b
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x2d], bl
jne 0x10029534
lea ebx, [ebx]
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x2d], bl
je 0x10029510
jmp 0x10029534
mov eax, dword [esi + 4]
cmp byte [eax + 0x2d], bl
jne 0x10029532
cmp esi, dword [eax + 8]
jne 0x10029532
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x2d], bl
je 0x10029523
mov esi, eax
cmp esi, dword [0x100a20e8]
jne 0x100294b3
jmp 0x10029547
mov edi, 0x10
cmp dword [ebp - 0x54], edi
jb 0x10029558
mov edx, dword [ebp - 0x68]
push edx
call fcn.10032d10
add esp, 4
mov dword [ebp - 0x54], 0xf
mov dword [ebp - 0x58], 0
mov byte [ebp - 0x68], 0
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax]
push eax
push ecx
lea edi, [ebp - 0x6c]
lea esi, [ebp - 0x7c]
call fcn.1002be60
mov eax, dword [ebp - 0x78]
push eax
call fcn.10032d10
mov ebx, dword [ebp - 0x90]
add esp, 4
test ebx, ebx
je 0x100295d4
mov edi, dword [ebp - 0x8c]
mov esi, ebx
cmp ebx, edi
je 0x100295cb
cmp dword [esi + 0x14], 0x10
jb 0x100295b3
mov ecx, dword [esi]
push ecx
call fcn.10032d10
add esp, 4
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
add esi, 0x1c
cmp esi, edi
jne 0x100295a2
push ebx
call fcn.10032d10
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10034caa
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x6c]
push edx
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0x6c], ebx
call fcn.10034d2f
push 0x10057508
lea eax, [ebp - 0xa4]
push eax
mov dword [ebp - 0xa4], vtable.std::bad_alloc.0
call fcn.10037737
int3