Function at 0x40aa10
Capabilities:
Delete file

Disassembly:
sub esp, 0x10
push ebp
push edi
mov edi, dword [esp + 0x24]
xor ebp, ebp
mov ecx, edi
mov dword [esp + 8], ebp
call fcn.00414960
test eax, eax
jle 0x40ac99
push ebx
push esi
mov esi, dword [esp + 0x28]
push ebp
mov ecx, edi
call fcn.004148c0
mov ecx, eax
call fcn.00440420
test al, al
je 0x40ac7f
push ebp
mov ecx, edi
call fcn.004148c0
mov ecx, eax
call fcn.0044bcd0
mov ebx, dword [esp + 0x24]
push eax
mov ecx, ebx
call fcn.00415080
mov edi, eax
test edi, edi
je 0x40aaf7
mov ecx, edi
call fcn.00440440
push eax
call fcn.00485230
add esp, 4
mov ecx, edi
test al, al
je 0x40aacf
call fcn.00440440
push eax
call dword [sym.imp.kernel32.dll_DeleteFileA]
cmp eax, 1
jne 0x40aac1
mov ecx, edi
call fcn.00441960
mov ecx, dword [esi + 8]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
push 1
push ecx
mov ecx, esi
call fcn.004167b0
push edi
mov ecx, ebx
call fcn.00415ad0
jmp 0x40ac7f
push 1
mov ecx, edi
call fcn.00440450
jmp 0x40ac7f
call fcn.00441960
lea edx, [esp + 0x18]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 8]
push edx
push 1
push eax
mov ecx, esi
call fcn.004167b0
push edi
mov ecx, ebx
call fcn.00415ad0
jmp 0x40ac7f
mov ecx, dword [esp + 0x2c]
push ebp
call fcn.004148c0
mov ecx, eax
call fcn.00441960
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 8]
sub ecx, eax
mov edi, eax
sar ecx, 2
cmp ecx, 1
jae 0x40abef
mov edx, dword [esi + 4]
test edx, edx
je 0x40ab35
mov ecx, eax
sub ecx, edx
sar ecx, 2
cmp ecx, 1
ja 0x40ab3a
mov ecx, 1
test edx, edx
jne 0x40ab42
xor eax, eax
jmp 0x40ab47
sub eax, edx
sar eax, 2
add eax, ecx
test eax, eax
mov dword [esp + 0x1c], eax
jge 0x40ab53
xor eax, eax
lea edx, [eax*4]
push edx
call fcn.004a2a14
add esp, 4
mov ebx, eax
mov eax, dword [esi + 4]
mov ecx, esi
push ebx
push edi
push eax
call fcn.00491680
lea ecx, [esp + 0x28]
mov ebp, eax
push ecx
push 1
push ebp
mov ecx, esi
call fcn.00416a30
mov edx, dword [esi + 8]
add ebp, 4
push ebp
push edx
push edi
mov ecx, esi
call fcn.00491680
mov eax, dword [esi + 8]
mov ecx, dword [esi + 4]
push eax
push ecx
mov ecx, esi
call fcn.00443ee0
mov edx, dword [esi + 4]
push edx
call fcn.004a2a3d
mov eax, dword [esp + 0x20]
add esp, 4
lea ecx, [ebx + eax*4]
mov eax, dword [esi + 4]
test eax, eax
mov dword [esi + 0xc], ecx
jne 0x40abd4
mov ebp, dword [esp + 0x10]
xor ecx, ecx
mov dword [esi + 4], ebx
lea edx, [ebx + ecx*4 + 4]
mov dword [esi + 8], edx
jmp 0x40ac7f
mov ecx, dword [esi + 8]
mov ebp, dword [esp + 0x10]
sub ecx, eax
mov dword [esi + 4], ebx
sar ecx, 2
lea edx, [ebx + ecx*4 + 4]
mov dword [esi + 8], edx
jmp 0x40ac7f
mov ecx, eax
sub ecx, edi
sar ecx, 2
cmp ecx, 1
jae 0x40ac3d
lea ecx, [edi + 4]
push ecx
push eax
push edi
mov ecx, esi
call fcn.00491680
mov eax, dword [esi + 8]
lea edx, [esp + 0x28]
mov ecx, eax
push edx
sub ecx, edi
mov edx, 1
sar ecx, 2
sub edx, ecx
mov ecx, esi
push edx
push eax
call fcn.00416a30
mov eax, dword [esi + 8]
cmp edi, eax
je 0x40ac7b
mov ecx, dword [esp + 0x28]
mov dword [edi], ecx
add edi, 4
cmp edi, eax
jne 0x40ac2e
jmp 0x40ac7b
lea ecx, [eax - 4]
push eax
push eax
mov dword [esp + 0x24], ecx
push ecx
mov ecx, esi
call fcn.00491680
mov ecx, dword [esi + 8]
lea eax, [ecx - 4]
cmp edi, eax
je 0x40ac67
mov edx, dword [eax - 4]
sub eax, 4
sub ecx, 4
cmp eax, edi
mov dword [ecx], edx
jne 0x40ac58
lea eax, [edi + 4]
cmp edi, eax
je 0x40ac7b
mov ecx, dword [esp + 0x28]
mov dword [edi], ecx
add edi, 4
cmp edi, eax
jne 0x40ac6e
add dword [esi + 8], 4
mov edi, dword [esp + 0x2c]
inc ebp
mov ecx, edi
mov dword [esp + 0x10], ebp
call fcn.00414960
cmp ebp, eax
jl 0x40aa34
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x10
ret 0xc