Function at 0x40f230
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x14], 0
mov byte [ebp - 0x19], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x24], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0x34], 0
cmp dword [ebp + 8], 0
je 0x40f2a5
mov eax, dword [ebp + 8]
push eax
call fcn.0040eb40
add esp, 4
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f2a5
jmp 0x40f7e5
lea ecx, [ebp - 0x28]
push ecx
lea edx, [ebp - 0x2c]
push edx
push 0x41411c
push 0
call fcn.00402892
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f2cc
jmp 0x40f7e5
push 1
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 1]
imul ecx, ecx, 0x468
push ecx
call fcn.00402ec0
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jne 0x40f30e
mov dword [ebp - 0x30], 0x8007000e
mov edx, dword [ebp - 0x30]
push edx
push 0x359
push 0x414128
call fcn.00402f4c
jmp 0x40f7e5
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 1]
imul ecx, ecx, 0xa8
mov edx, dword [ebp - 0x2c]
lea eax, [edx + ecx + 4]
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x35], 0
jmp 0x40f334
mov cl, byte [ebp - 0x35]
add cl, 1
mov byte [ebp - 0x35], cl
movzx edx, byte [ebp - 0x35]
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 2]
cmp edx, ecx
jge 0x40f38e
movzx edx, byte [ebp - 0x35]
shl edx, 4
add edx, dword [ebp - 0x20]
mov dword [ebp - 0x3c], edx
push 1
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax + 0xc]
push ecx
mov edx, dword [ebp + 0x10]
push edx
call fcn.0040dfc0
add esp, 0xc
test eax, eax
je 0x40f38c
lea eax, [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x3c]
push ecx
call fcn.0040e0a0
add esp, 8
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f38c
jmp 0x40f7e5
jmp 0x40f32b
cmp dword [ebp - 0x10], 0
jne 0x40f3fd
mov byte [ebp - 0x3d], 0
jmp 0x40f3a3
mov dl, byte [ebp - 0x3d]
add dl, 1
mov byte [ebp - 0x3d], dl
movzx eax, byte [ebp - 0x3d]
mov ecx, dword [ebp - 0x2c]
movzx edx, byte [ecx + 2]
cmp eax, edx
jge 0x40f3fd
movzx eax, byte [ebp - 0x3d]
shl eax, 4
add eax, dword [ebp - 0x20]
mov dword [ebp - 0x44], eax
push 0
mov ecx, dword [ebp - 0x44]
mov edx, dword [ecx + 0xc]
push edx
mov eax, dword [ebp + 0x10]
push eax
call fcn.0040dfc0
add esp, 0xc
test eax, eax
je 0x40f3fb
lea ecx, [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x44]
push edx
call fcn.0040e0a0
add esp, 8
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f3fb
jmp 0x40f7e5
jmp 0x40f39a
cmp dword [ebp + 0x14], 0
je 0x40f40d
mov eax, dword [ebp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov byte [ebp - 0x45], 0
jmp 0x40f41c
mov cl, byte [ebp - 0x45]
add cl, 1
mov byte [ebp - 0x45], cl
movzx edx, byte [ebp - 0x45]
mov eax, dword [ebp - 0x2c]
movzx ecx, byte [eax + 1]
cmp edx, ecx
jge 0x40f7e3
mov dword [ebp - 0x5c], 0
mov edx, dword [ebp + 0x18]
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x54], eax
movzx ecx, byte [ebp - 0x45]
imul ecx, ecx, 0xa8
mov edx, dword [ebp - 0x2c]
lea eax, [edx + ecx + 4]
mov dword [ebp - 0x50], eax
movzx ecx, byte [ebp - 0x19]
imul ecx, ecx, 0x468
add ecx, dword [ebp - 0x14]
mov dword [ebp - 0x58], ecx
cmp dword [ebp + 0xc], 0
je 0x40f474
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x68], edx
jmp 0x40f47b
mov dword [ebp - 0x68], 0x414138
push 0
mov eax, dword [ebp - 0x68]
push eax
lea ecx, [ebp - 8]
push ecx
call fcn.004024ae
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f49d
jmp 0x40f7e5
push 0x27
mov edx, dword [ebp - 0x58]
push edx
mov eax, dword [ebp - 0x50]
add eax, 0x8c
push eax
call dword [sym.imp.ole32.dll_StringFromGUID2]
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f4c5
jmp 0x40f7e5
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0xa4]
and edx, 0x100
je 0x40f4df
mov dword [ebp - 0x54], 6
jmp 0x40f51c
cmp dword [ebp - 0x54], 7
je 0x40f51c
lea eax, [ebp - 0x54]
push eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0xa0]
push edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0x9c]
push ecx
mov edx, dword [ebp - 0x58]
push edx
call fcn.0040e460
add esp, 0x10
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f51c
jmp 0x40f7e5
cmp dword [ebp - 0x54], 0
jne 0x40f527
jmp 0x40f413
mov al, byte [ebp - 0x19]
add al, 1
mov byte [ebp - 0x19], al
lea ecx, [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x50]
push edx
call fcn.0040ec30
add esp, 8
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f552
jmp 0x40f7e5
mov dword [ebp - 0x5c], 1
mov eax, dword [ebp - 0x18]
push eax
push 0x104
mov ecx, dword [ebp - 0x58]
add ecx, 0x4e
push ecx
call fcn.00401e50
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f581
jmp 0x40f7e5
cmp dword [ebp - 0x10], 0
je 0x40f66c
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0xa4]
and eax, 0x80
je 0x40f66c
push 0
push str._TRANSFORMS_
lea ecx, [ebp - 8]
push ecx
call fcn.00402528
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f5c2
jmp 0x40f7e5
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0xa4]
and eax, 4
je 0x40f644
lea ecx, [ebp - 0xc]
push ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0xa4]
and eax, 1
push eax
mov ecx, dword [ebp - 0x10]
push ecx
mov edx, dword [ebp - 0x50]
push edx
call fcn.0040e5a0
add esp, 0x10
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f604
jmp 0x40f7e5
cmp dword [ebp - 0x10], 0
je 0x40f61a
mov eax, dword [ebp - 0x10]
push eax
call fcn.00401f72
mov dword [ebp - 0x10], 0
push 0
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00402aa2
push eax
lea edx, [ebp - 8]
push edx
call fcn.00402528
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f642
jmp 0x40f7e5
jmp 0x40f66c
push 0
mov eax, dword [ebp - 0x10]
push eax
call fcn.00402aa2
push eax
lea ecx, [ebp - 8]
push ecx
call fcn.00402528
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f66c
jmp 0x40f7e5
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0xa4]
and eax, 4
je 0x40f6f5
lea ecx, [ebp - 0x24]
push ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0xa4]
and eax, 1
push eax
mov ecx, dword [ebp - 0x18]
push ecx
mov edx, dword [ebp - 0x50]
push edx
call fcn.0040e730
add esp, 0x10
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f6ae
jmp 0x40f7e5
mov dword [ebp - 0x5c], 0
mov eax, dword [ebp - 0x24]
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x24]
push ecx
push 0x104
mov edx, dword [ebp - 0x58]
add edx, 0x256
push edx
call fcn.00401e50
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f6e6
jmp 0x40f7e5
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x460], 1
jmp 0x40f6fb
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0xa4]
and eax, 8
jne 0x40f727
mov dword [ebp - 0x4c], 3
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0xa4]
and edx, 0x10
je 0x40f727
mov eax, dword [ebp - 0x4c]
or eax, 0x40
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx + 0xa4]
and edx, 1
push edx
mov eax, dword [ebp - 0x50]
mov ecx, dword [eax + 0xa4]
and ecx, 0x200
push ecx
mov edx, dword [ebp - 0x50]
mov eax, dword [edx + 0xa4]
and eax, 0x10
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x54]
push edx
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp - 8]
push ecx
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp - 0x50]
add eax, 0xc
push eax
mov ecx, dword [ebp - 0x58]
push ecx
call fcn.0040edc0
add esp, 0x28
mov dword [ebp - 0x30], eax
cmp dword [ebp - 0x30], 0
jge 0x40f785
jmp 0x40f7e5
cmp dword [ebp - 0x30], 1
jne 0x40f7c1
mov edx, dword [ebp - 0x58]
cmp dword [edx + 0x460], 0
je 0x40f7bf
mov eax, dword [ebp - 0x58]
add eax, 0x256
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
xor ecx, ecx
mov edx, dword [ebp - 0x58]
mov word [edx + 0x256], cx
mov eax, dword [ebp - 0x58]
mov dword [eax + 0x460], 0
jmp 0x40f7ce
mov ecx, dword [ebp - 0x58]
mov dword [ecx + 0x464], 1
cmp dword [ebp - 0x5c], 0
je 0x40f7de
mov edx, dword [ebp - 0x18]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x40f413
jmp 0x40f7e5
cmp dword [ebp - 0x30], 0
jge 0x40f8c1
push 0xbc2
call fcn.00401e10
add esp, 4
cmp eax, dword [ebp - 0x30]
je 0x40f8c1
push 0xbc3
call fcn.00401e10
add esp, 4
cmp eax, dword [ebp - 0x30]
je 0x40f8c1
push 0x669
call fcn.00401e10
add esp, 4
cmp eax, dword [ebp - 0x30]
je 0x40f8c1
mov byte [ebp - 0x5d], 0
jmp 0x40f83f
mov al, byte [ebp - 0x5d]
add al, 1
mov byte [ebp - 0x5d], al
movzx ecx, byte [ebp - 0x5d]
movzx edx, byte [ebp - 0x19]
cmp ecx, edx
jge 0x40f8c1
movzx eax, byte [ebp - 0x5d]
imul eax, eax, 0x468
add eax, dword [ebp - 0x14]
mov dword [ebp - 0x64], eax
mov ecx, dword [ebp - 0x64]
cmp dword [ecx + 0x464], 0
je 0x40f887
push 0
push 0
push 1
push 3
push 7
mov edx, dword [ebp + 0x14]
push edx
push 0
push 0
push 0
mov eax, dword [ebp - 0x64]
push eax
call fcn.0040edc0
add esp, 0x28
mov ecx, dword [ebp - 0x64]
movzx edx, word [ecx + 0x256]
test edx, edx
je 0x40f8a4
mov eax, dword [ebp - 0x64]
add eax, 0x256
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [ebp - 0x64]
movzx edx, word [ecx + 0x4e]
test edx, edx
je 0x40f8bc
mov eax, dword [ebp - 0x64]
add eax, 0x4e
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x40f837
cmp dword [ebp - 0x10], 0
je 0x40f8d1
mov ecx, dword [ebp - 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp - 0x14], 0
je 0x40f8e0
mov edx, dword [ebp - 0x14]
push edx
call fcn.00402f1a
cmp dword [ebp - 0x34], 0
je 0x40f8f0
mov eax, dword [ebp - 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [ebp - 0x18], 0
je 0x40f8ff
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.00401f72
cmp dword [ebp - 0x10], 0
je 0x40f90e
mov edx, dword [ebp - 0x10]
push edx
call fcn.00401f72
cmp dword [ebp - 0x24], 0
je 0x40f91d
mov eax, dword [ebp - 0x24]
push eax
call fcn.00401f72
cmp dword [ebp - 0xc], 0
je 0x40f92c
mov ecx, dword [ebp - 0xc]
push ecx
call fcn.00401f72
cmp dword [ebp - 8], 0
je 0x40f93b
mov edx, dword [ebp - 8]
push edx
call fcn.00401f72
mov eax, dword [ebp - 0x30]
mov esp, ebp
pop ebp
ret