Function at 0x10028f20
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1004de75
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 0x10029089
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.10002da0
mov byte [ebp - 4], 1
cmp dword [ebp - 0x18], 0x10
mov eax, dword [ebp - 0x2c]
jae 0x10028fa9
lea eax, [ebp - 0x2c]
push 0
push eax
call fcn.10036edb
add esp, 8
cmp eax, 0xffffffff
jne 0x10028fc2
mov dword [esi + 0x28], 0
jmp 0x10029020
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.10002da0
lea ecx, [ebp - 0x48]
push ecx
mov ecx, ebx
call fcn.10029610
mov byte [ebp - 4], 2
cmp dword [ebp - 0x38], 0
je 0x1002900e
lea ecx, [ebp - 0x48]
lea edi, [ebp - 0x90]
mov dword [esi + 0x28], 1
call fcn.1000b1c0
cmp dword [ebp - 0x34], 0x10
jb 0x10029020
mov edx, dword [ebp - 0x48]
push edx
call fcn.10032d80
add esp, 4
inc ebx
mov byte [ebp - 4], 0
cmp dword [ebp - 0x18], 0x10
jb 0x10029037
mov eax, dword [ebp - 0x2c]
push eax
call fcn.10032d80
add esp, 4
cmp byte [esi + 0x2d], 0
jne 0x10029077
mov eax, dword [esi + 8]
cmp byte [eax + 0x2d], 0
jne 0x1002905c
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x2d], 0
jne 0x10029077
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x2d], 0
je 0x10029050
jmp 0x10029077
mov eax, dword [esi + 4]
cmp byte [eax + 0x2d], 0
jne 0x10029075
cmp esi, dword [eax + 8]
jne 0x10029075
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x2d], 0
je 0x10029065
mov esi, eax
cmp esi, dword [0x100a20e8]
jne 0x10028f76
mov edi, dword [ebp - 0x90]
xor ebx, ebx
push 0x30
mov dword [ebp - 0x74], ebx
call fcn.10032d50
add esp, 4
cmp eax, ebx
je 0x100295e0
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 0x10029263
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.10002da0
lea ecx, [ebp - 0x2c]
push ecx
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 4
call fcn.10029d80
mov dword [ebp - 0x98], eax
cmp eax, dword [ebp - 0x78]
je 0x100291cb
mov edi, dword [eax + 0x1c]
add eax, 0xc
mov ecx, 0x10
cmp dword [eax + 0x14], ecx
jb 0x10029120
mov eax, dword [eax]
mov edx, dword [ebp - 0x1c]
cmp edx, edi
jb 0x10029129
mov edx, edi
mov esi, dword [ebp - 0x2c]
cmp dword [ebp - 0x18], ecx
jae 0x10029134
lea esi, [ebp - 0x2c]
mov ecx, eax
cmp edx, 4
jb 0x10029154
jmp 0x10029140
mov eax, dword [esi]
cmp eax, dword [ecx]
jne 0x10029158
sub edx, 4
add ecx, 4
add esi, 4
cmp edx, 4
jae 0x10029140
cmp edx, ebx
je 0x1002919f
movzx ebx, byte [ecx]
movzx eax, byte [esi]
sub eax, ebx
jne 0x10029193
cmp edx, 1
jbe 0x1002919d
movzx eax, byte [esi + 1]
movzx ebx, byte [ecx + 1]
sub eax, ebx
jne 0x10029193
cmp edx, 2
jbe 0x1002919d
movzx eax, byte [esi + 2]
movzx ebx, byte [ecx + 2]
sub eax, ebx
jne 0x10029193
cmp edx, 3
jbe 0x1002919d
movzx eax, byte [esi + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
sar eax, 0x1f
or eax, 1
xor ebx, ebx
jmp 0x100291a1
xor ebx, ebx
xor eax, eax
cmp eax, ebx
jne 0x100291bc
mov eax, dword [ebp - 0x1c]
cmp eax, edi
jae 0x100291b1
or eax, 0xffffffff
jmp 0x100291ba
xor edx, edx
cmp eax, edi
setne dl
mov eax, edx
cmp eax, ebx
setl al
test al, al
jne 0x100291cb
lea eax, [ebp - 0x98]
jmp 0x100291da
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x94], eax
lea eax, [ebp - 0x94]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x78]
je 0x100291e6
inc dword [eax + 0x28]
jmp 0x10029238
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.10002da0
mov dword [ebp - 0x30], ebx
lea ecx, [ebp - 0x4c]
lea edx, [ebp - 0x7c]
mov byte [ebp - 4], 5
call fcn.1002c7e0
push eax
lea edx, [ebp - 0xac]
push edx
lea eax, [ebp - 0x7c]
push eax
call fcn.1002a170
cmp dword [ebp - 0x38], 0x10
jb 0x10029238
mov ecx, dword [ebp - 0x4c]
push ecx
call fcn.10032d80
add esp, 4
mov byte [ebp - 4], 3
cmp dword [ebp - 0x18], 0x10
jb 0x1002924e
mov edx, dword [ebp - 0x2c]
push edx
call fcn.10032d80
add esp, 4
mov eax, dword [ebp - 0x80]
add eax, 0x1c
mov dword [ebp - 0x80], eax
cmp eax, dword [ebp - 0x8c]
jne 0x100290d2
push ebx
push 0x10053520
lea ecx, [ebp - 0x68]
xor esi, esi
mov dword [ebp - 0x54], 0xf
mov dword [ebp - 0x58], ebx
mov byte [ebp - 0x68], 0
call fcn.100028b0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x78]
mov edi, dword [ecx]
cmp edi, ecx
je 0x100292ee
mov edi, edi
cmp dword [edi + 0x28], esi
jle 0x100292aa
push 0xffffffffffffffff
lea eax, [edi + 0xc]
push ebx
push eax
lea ecx, [ebp - 0x68]
call fcn.10002da0
mov esi, dword [edi + 0x28]
mov ecx, dword [ebp - 0x78]
cmp byte [edi + 0x2d], 0
jne 0x100292ea
mov eax, dword [edi + 8]
cmp byte [eax + 0x2d], 0
jne 0x100292cf
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0x2d], 0
jne 0x100292ea
mov edi, eax
mov eax, dword [edi]
cmp byte [eax + 0x2d], 0
je 0x100292c3
jmp 0x100292ea
mov eax, dword [edi + 4]
cmp byte [eax + 0x2d], 0
jne 0x100292e8
cmp edi, dword [eax + 8]
jne 0x100292e8
mov edi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x2d], 0
je 0x100292d8
mov edi, eax
cmp edi, ecx
jne 0x10029290
mov eax, dword [ebp - 0x74]
mov edi, vtable.SysService.0
cmp eax, 1
jne 0x10029317
push 0xffffffffffffffff
push ebx
lea eax, [ebp - 0x68]
push eax
mov ecx, 0x100a2084
call fcn.10002da0
mov dword [0x100a20e0], ebx
jmp 0x100293dc
cmp eax, ebx
jne 0x100293c1
mov dword [ebp - 0x6c], edi
lea ebx, [ebp - 0x48]
mov byte [ebp - 4], 7
call fcn.10030130
mov esi, eax
cmp esi, 0x100a2084
je 0x100293a5
cmp dword [0x100a2098], 0x10
jb 0x1002934f
mov eax, dword [0x100a2084]
push eax
call fcn.10032d80
add esp, 4
xor ebx, ebx
mov dword [0x100a2098], 0xf
mov dword [0x100a2094], ebx
mov byte [0x100a2084], bl
cmp dword [esi + 0x14], 0x10
jae 0x10029382
mov eax, dword [esi + 0x10]
inc eax
push eax
push esi
push 0x100a2084
call fcn.10034ee0
add esp, 0xc
jmp 0x1002938c
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 0x100293a7
xor ebx, ebx
cmp dword [ebp - 0x34], 0x10
jb 0x100293b9
mov ecx, dword [ebp - 0x48]
push ecx
call fcn.10032d80
add esp, 4
mov dword [0x100a20e0], ebx
jmp 0x100293dc
push 0xffffffffffffffff
push ebx
lea edx, [ebp - 0x68]
push edx
mov ecx, 0x100a2084
call fcn.10002da0
mov dword [0x100a20e0], 1
cmp dword [0x100a2094], 0
jne 0x10029532
mov dword [ebp - 0x6c], edi
lea ebx, [ebp - 0x48]
mov byte [ebp - 4], 9
call fcn.10030130
mov esi, eax
cmp esi, 0x100a2084
je 0x10029472
mov edi, 0x10
cmp dword [0x100a2098], edi
jb 0x1002941d
mov eax, dword [0x100a2084]
push eax
call fcn.10032d80
add esp, 4
xor ebx, ebx
mov dword [0x100a2098], 0xf
mov dword [0x100a2094], ebx
mov byte [0x100a2084], bl
cmp dword [esi + 0x14], edi
jae 0x1002944f
mov eax, dword [esi + 0x10]
inc eax
push eax
push esi
push 0x100a2084
call fcn.10034ee0
add esp, 0xc
jmp 0x10029458
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 0x10029474
xor ebx, ebx
mov edi, 0x10
mov byte [ebp - 4], 9
cmp dword [ebp - 0x34], edi
jb 0x1002948e
mov eax, dword [ebp - 0x48]
push eax
call fcn.10032d80
add esp, 4
mov eax, dword [0x100a20e8]
mov dword [0x100a20e0], ebx
mov esi, dword [eax]
cmp esi, eax
je 0x10029537
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.10002da0
mov eax, dword [ebp - 0x2c]
cmp dword [ebp - 0x18], edi
jae 0x100294cc
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
cmp dword [ebp - 0x18], edi
jb 0x100294e4
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.10032d80
add esp, 4
cmp byte [esi + 0x2d], bl
jne 0x10029524
mov eax, dword [esi + 8]
cmp byte [eax + 0x2d], bl
jne 0x1002950b
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x2d], bl
jne 0x10029524
lea ebx, [ebx]
mov esi, eax
mov eax, dword [esi]
cmp byte [eax + 0x2d], bl
je 0x10029500
jmp 0x10029524
mov eax, dword [esi + 4]
cmp byte [eax + 0x2d], bl
jne 0x10029522
cmp esi, dword [eax + 8]
jne 0x10029522
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0x2d], bl
je 0x10029513
mov esi, eax
cmp esi, dword [0x100a20e8]
jne 0x100294a3
jmp 0x10029537
mov edi, 0x10
cmp dword [ebp - 0x54], edi
jb 0x10029548
mov edx, dword [ebp - 0x68]
push edx
call fcn.10032d80
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.1002bf00
mov eax, dword [ebp - 0x78]
push eax
call fcn.10032d80
mov ebx, dword [ebp - 0x90]
add esp, 4
test ebx, ebx
je 0x100295c4
mov edi, dword [ebp - 0x8c]
mov esi, ebx
cmp ebx, edi
je 0x100295bb
cmp dword [esi + 0x14], 0x10
jb 0x100295a3
mov ecx, dword [esi]
push ecx
call fcn.10032d80
add esp, 4
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], 0
mov byte [esi], 0
add esi, 0x1c
cmp esi, edi
jne 0x10029592
push ebx
call fcn.10032d80
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.10034d1a
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x6c]
push edx
lea ecx, [ebp - 0xa4]
mov dword [ebp - 0x6c], ebx
call fcn.10034d9f
push 0x10057548
lea eax, [ebp - 0xa4]
push eax
mov dword [ebp - 0xa4], vtable.std::bad_alloc.0
call fcn.100377a7
int3