Function at 0x4058bd
Capabilities:
Delete file

Disassembly:
push ebp
lea ebp, [esp - 0xf0]
sub esp, 0x170
mov eax, dword [0x42005c]
push esi
push edi
push dword [ebp + 0x108]
mov edi, ecx
mov esi, 0x140
lea ecx, [ebp - 0x80]
mov dword [ebp + 0xec], eax
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x68], esi
call fcn.00414ef1
push dword [ebp + 0xfc]
mov ecx, dword [0x420b04]
push 0x325
push dword [ebp - 0x80]
call fcn.00409067
mov ecx, dword [0x420b04]
mov eax, dword [ecx]
call dword [eax + 0x10]
test al, 4
jne 0x405923
xor eax, eax
inc eax
jmp 0x405b89
mov eax, dword [edi + 0x330]
test eax, eax
mov dword [ebp + 0x108], eax
jne 0x40595d
push dword [ebp + 0x104]
mov ecx, dword [0x420b04]
call fcn.00407eff
test eax, eax
mov dword [ebp + 0x108], eax
jne 0x40595d
mov eax, dword [ebp + 0xf8]
mov eax, dword [eax + 0xc]
mov dword [ebp + 0x108], eax
push ebx
lea eax, [edi + 0x228]
mov ebx, 0x13f
jmp 0x405a1e
lea eax, [ebp - 0x64]
push eax
call fcn.004166db
mov edi, eax
test edi, edi
jl 0x40599b
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x54]
push eax
push eax
push dword [ebp - 0x64]
mov dword [ebp - 0x68], esi
call fcn.0040847a
push dword [ebp - 0x64]
mov edi, eax
call fcn.00416530
cmp edi, 0x80070002
je 0x405b70
cmp edi, 0x80070003
je 0x405b70
xor eax, eax
cmp edi, eax
jge 0x405a56
mov ecx, dword [0x420b04]
mov eax, dword [ecx]
call dword [eax + 0x3c]
test eax, eax
jne 0x405b67
push esi
lea eax, [ebp - 0x54]
push eax
push 0x2ca
push dword [0x420afc]
call dword [sym.imp.USER32.dll_LoadStringA]
mov eax, dword [0x420b04]
mov ecx, dword [eax + 0x1264]
mov eax, dword [eax + 0x22c]
push 0x106
push ecx
lea ecx, [ebp - 0x54]
push ecx
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 0xb
je 0x405b6b
cmp eax, 2
je 0x405a4e
mov eax, dword [ebp - 0x58]
add eax, 0x228
push eax
push 0x401c5c
lea eax, [ebp - 0x54]
push ebx
push eax
call fcn.0040bf33
add esp, 0x10
test eax, eax
jge 0x40596e
mov ecx, dword [0x420b04]
push 0x1b58
push 0x321
call fcn.00407f9f
or edi, 0xffffffff
jmp 0x405b86
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp - 0x4f]
push 0x401c50
push eax
call fcn.0040c38d
mov edx, dword [ebp - 0x78]
mov esi, dword [ebp - 0x74]
add esp, 0x10
mov ecx, edx
sub ecx, dword [ebp - 0x60]
mov eax, esi
sbb eax, dword [ebp - 0x5c]
xor edi, edi
cmp eax, edi
jg 0x405ac2
jl 0x405a97
cmp ecx, edi
jae 0x405a9d
neg ecx
adc eax, edi
neg eax
cmp eax, edi
jg 0x405ac2
jl 0x405aab
cmp ecx, 0x1312d01
ja 0x405ac2
mov eax, dword [ebp - 0x80]
mov ebx, dword [ebp - 0x70]
xor ecx, ecx
cmp ebx, eax
jne 0x405ac2
mov eax, dword [ebp - 0x6c]
cmp eax, ecx
je 0x405b77
cmp dword [ebp - 0x5c], esi
jg 0x405ad6
jl 0x405b6b
cmp dword [ebp - 0x60], edx
jb 0x405b6b
test byte [ebp + 0x10a], 2
jne 0x405b6b
test byte [ebp + 0x109], 4
jne 0x405b77
mov ecx, dword [0x420b04]
mov eax, dword [ecx]
call dword [eax + 0x3c]
test eax, eax
jne 0x405b77
mov edi, dword [ebp - 0x58]
lea esi, [edi + 0x124]
lea edx, [ebp - 0x54]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x405b0f
mov eax, dword [ebp + 0xfc]
mov edx, esi
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x405b23
mov eax, dword [0x420b04]
mov eax, dword [eax + 0x22c]
push edi
push 0x4052a4
push eax
push 0x259
push dword [0x420afc]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
mov edi, eax
lea eax, [ebp - 0x54]
mov edx, esi
mov ecx, eax
sub edx, ecx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x405b5b
jmp 0x405b73
xor edi, edi
jmp 0x405b77
xor edi, edi
inc edi
jmp 0x405b86
xor edi, edi
inc edi
test edi, edi
jne 0x405b86
mov eax, dword [ebp - 0x58]
add eax, 0x124
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, edi
pop ebx
mov ecx, dword [ebp + 0xec]
pop edi
pop esi
call fcn.0040bf1b
add ebp, 0xf0
leave
ret 0x14