Function at 0x470985
Capabilities:
Delete file

Disassembly:
xor eax, eax
jmp 0x470a68
cmp dword [ebp + 0xc], 0
mov byte [ebp + 0xb], 1
mov byte [ebp - 1], 1
mov byte [ebp - 2], 1
jne case.default.0x4709cb
push 0
push 0
push 0
push 0x781b
call fcn.004b20e1
push eax
call dword [fcn.004013ac]
jmp case.default.0x4709cb
mov byte [ebp - 2], 1
jmp case.default.0x4709cb
mov byte [edi + 0x40], 1
jmp 0x470a97
mov eax, 3
jmp 0x470aae
push 0
push 0
push 0
push eax
call dword [fcn.004013ac]
jmp 0x470ac4
mov ecx, dword [ecx + 0xdfc]
cmp ecx, 3
je 0x46e874
cmp ecx, 2
je 0x46e874
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x30]
push ebx
mov ecx, esi
call eax
jmp 0x46e884
mov edx, dword [esi]
push 0
push eax
mov eax, dword [edx + 0x118]
push ebx
mov ecx, esi
call eax
test eax, eax
jge 0x46e895
push 0
push 0
push 0
push eax
call dword [fcn.004013ac]
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 8]
mov eax, dword [edx + 0xc20]
test eax, eax
je 0x470ae5
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x10c]
push ebx
mov ecx, esi
call eax
test eax, eax
jge 0x470ae5
push 0
push 0
push 0
push eax
call dword [fcn.004013ac]
jmp 0x470ae5
push 0
push 0
push 0
push eax
call dword [fcn.004013ac]
jmp 0x470b10
push 0
push 0
push 0
push eax
call dword [fcn.004013ac]
jmp 0x470b33
push 0
push 0
push 0
push eax
call dword [fcn.004013ac]
jmp 0x470ba7
push 0
push 0
push 0
push eax
call dword [fcn.004013ac]
jmp 0x470bc3
push 0
push 0
push 0
push eax
call dword [fcn.004013ac]
jmp 0x470c0f
push 0
push 0
push 0
push eax
call dword [fcn.004013ac]
jmp 0x470c3e
push 0
push 0
push 0
push eax
call dword [fcn.004013ac]
jmp 0x470c55
push 0
push 0
push 0
push eax
call dword [fcn.004013ac]
jmp 0x470c7e
mov eax, dword [ebp + 0xc]
mov edx, dword [esi]
mov edx, dword [edx + 0xd0]
push eax
push ebx
call edx
test eax, eax
jge 0x470ca0
push 0
push 0
push 0
push eax
call dword [fcn.004013ac]
jmp 0x470ca0
mov eax, ecx
mov ecx, dword [eax + 0x14]
call fcn.00403137
test al, al
jne 0x470cd0
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 8]
call fcn.004b6d6c
jmp 0x470cd0
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x470cef
push eax
call dword [sym.imp.vsansi.dll_DeleteFileW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 8]
push ecx
push eax
mov eax, dword [edx + 0x14]
push 0
push 0x792b
push eax
call fcn.004ba044
add esp, 0x14
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push ebp
mov ebp, esp
sub esp, 0x30
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 8]
mov edx, dword [edi + 0x34]
mov esi, dword [edi]
mov ebx, dword [edi + 4]
mov dword [ebp - 0x18], eax
mov eax, dword [edi + 0x3c]
mov dword [ebp - 8], ecx
mov ecx, dword [edi + 0x30]
mov dword [ebp - 0x1c], eax
mov eax, dword [edi + 0x44]
cmp eax, 3
mov dword [ebp - 0x10], ecx
mov ecx, dword [edi + 0x38]
mov dword [ebp - 0x14], edx
mov dword [ebp - 0xc], ecx
mov byte [ebp + 0xb], 0
mov byte [ebp - 2], 0
mov byte [ebp - 1], 0
ja case.default.0x4709cb
jmp dword [eax*4 + 0x46e9f0]
mov byte [ebp - 2], 1
mov byte [ebp - 1], 1
cmp byte [ebp - 2], 0
mov edx, dword [ebp + 0x10]
mov byte [edx], 0
je 0x470b4a
mov ecx, dword [ebp + 0x14]
call fcn.0046f915
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x14]
push eax
push ebx
push esi
call fcn.0046e069
mov ecx, dword [ebp + 0x14]
call fcn.0046e10c
mov ecx, dword [ebp + 0x14]
call fcn.00471c2e
mov ecx, dword [ebp + 0x14]
call fcn.0046fe4b
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 8]
cmp dword [edx + 0xc28], 4
je 0x470a84
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x14]
push eax
push ebx
push esi
call fcn.00470946
mov ecx, dword [ebp + 0x14]
call fcn.0046e2aa
cmp dword [ebp - 0x14], 0
jne 0x470a84
cmp byte [ebp + 0xb], 0
jne 0x470a84
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 8]
mov eax, dword [eax + 0xc28]
cmp eax, 2
je 0x470a63
cmp eax, 1
jne 0x46e7f0
mov eax, 1
mov ecx, dword [ebp - 0x1c]
lea edx, [ebp - 0xc]
push edx
test al, al
sete dl
push ecx
mov ecx, dword [ebp + 0x14]
push edx
call fcn.004712fb
mov eax, dword [ebp - 0xc]
mov dword [edi + 0x38], eax
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 0x14]
call fcn.00403137
test al, al
jne 0x46e832
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 8]
mov eax, 1
cmp dword [ecx + 0xdfc], eax
je 0x46e83b
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0xa4]
push ebx
mov ecx, esi
call eax
test eax, eax
jl 0x46e845
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 8]
mov eax, dword [ecx + 0xc1c]
test eax, eax
jne 0x46e857
jmp 0x46e895
push 0
push 4
push 2
jmp 0x470afe
mov ecx, dword [ebp - 8]
mov eax, dword [ecx + 8]
test eax, eax
je 0x470add
cmp dword [eax + 0xc28], 1
jne 0x470add
push 0
push 4
push 3
mov edx, dword [esi]
mov eax, dword [edx + 0x34]
push ebx
mov ecx, esi
call eax
test eax, eax
jl 0x46e8d1
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0x42c]
mov ecx, dword [ecx + 0xac]
mov edx, dword [eax]
push ecx
push eax
mov eax, dword [edx + 0xc]
call eax
test eax, eax
jl 0x46e8e3
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 8]
cmp dword [edx + 0xc28], 4
je 0x470b4a
mov ecx, dword [ebp + 0x14]
call fcn.0046e2fb
cmp byte [ebp - 1], 0
je 0x470cd0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 8]
cmp dword [ecx + 0xc28], 4
je 0x470b6b
mov ecx, dword [ebp + 0x14]
call fcn.0046e31a
cmp byte [ebp + 0xb], 0
jne 0x470b7f
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x470b7f
push eax
call dword [sym.imp.vsansi.dll_DeleteFileW]
mov ecx, dword [ebp - 8]
push edi
call fcn.004715b0
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 0x42c]
mov edx, dword [esi]
mov edx, dword [edx + 0xb4]
push ecx
push ebx
mov ecx, esi
call edx
test eax, eax
jl 0x46e8f5
cmp byte [ebp + 0xb], 0
jne 0x470bc3
mov ecx, dword [ebp - 0x10]
mov eax, dword [esi]
mov edx, dword [eax + 0x20]
push ecx
push ebx
mov ecx, esi
call edx
test eax, eax
jl 0x46e907
cmp dword [ebp - 0x14], 0
jne 0x470bcf
cmp dword [ebp - 0xc], 0
je 0x470c17
lea ecx, [ebp - 0x30]
call fcn.0046e3d9
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x470be1
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 0x14]
push 0x7b15
push edx
push eax
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x14], eax
call fcn.00471a6a
mov eax, dword [ebp - 0x14]
mov edx, dword [esi]
mov edx, dword [edx + 0x28]
push eax
push ebx
mov ecx, esi
call edx
test eax, eax
jl 0x46e919
lea ecx, [ebp - 0x30]
call fcn.0046e3ee
mov eax, dword [ebp - 8]
mov ecx, dword [eax + 8]
mov eax, dword [ecx + 0xc28]
mov edx, dword [esi]
mov edx, dword [edx + 0x50]
xor ecx, ecx
cmp eax, 3
sete cl
push ecx
push ebx
mov ecx, esi
call edx
test eax, eax
jl 0x46e92b
mov eax, dword [esi]
mov edx, dword [eax + 0xa4]
push 1
push ebx
mov ecx, esi
call edx
test eax, eax
jl 0x46e93d
mov ecx, dword [edi + 0x28]
xor eax, eax
test ecx, ecx
je 0x470c68
mov edx, dword [ebp - 8]
cmp dword [edx], eax
jne 0x470c68
mov eax, dword [ecx + 0x14]
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x9c]
push ebx
mov ecx, esi
call eax
test eax, eax
jl 0x46e94f
cmp byte [edi + 0x40], 0
jne 0x470ca8
cmp byte [ebp + 0xb], 0
mov ecx, esi
jne 0x46e961
mov eax, dword [esi]
mov edx, dword [eax + 0x1c]
push ebx
call edx
test eax, eax
jl 0x46e9c7
mov ecx, dword [ebp + 0x14]
call fcn.0046e433
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x470cbd
push eax
call dword [sym.imp.vsansi.dll_DeleteFileW]
mov dword [edi + 0x38], 0
mov ecx, dword [ebp - 8]
mov edx, dword [ecx + 8]
cmp dword [edx + 0xc0], 0
jne 0x46e98a
mov edx, dword [ebp - 8]
mov ecx, dword [edx + 0x14]
call fcn.00403137
test al, al
jne 0x46e9ac
cmp byte [ebp - 1], 0
je 0x470cef
mov eax, dword [ebp + 0x10]
mov byte [eax], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10