Function at 0x4054b0
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 0x61c
add esp, 0xfffff004
push eax
dec eax
jne 0x4054b9
mov eax, dword [ebp - 4]
add esp, 0xfffffa30
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x61c5d4], edx
mov dword [ebp - 0x61c5d0], edx
mov dword [ebp - 0x61c5cc], edx
mov dword [ebp - 0x61c5c8], edx
mov dword [ebp - 0x61c5c4], edx
mov dword [ebp - 0x61c5c0], edx
mov dword [ebp - 0x60c464], edx
mov dword [ebp - 0x60c47c], edx
mov dword [ebp - 0x60c480], edx
mov dword [ebp - 0x60c448], eax
mov eax, dword [ebp - 0x60c448]
call fcn.004031ec
lea edi, [ebp - 0x60c440]
xor eax, eax
push ebp
push 0x405ea5
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [0x409584], 0
lea eax, [ebp - 0x60c464]
call fcn.00402f18
mov byte [0x40a5fc], 0
xor eax, eax
mov dword [ebp - 0x60c438], eax
mov dword [ebp - 0x60c43c], 1
jmp 0x405e37
lea eax, [ebp - 0x60c449]
call fcn.00404880
push 0x4095c8
xor ecx, ecx
mov cl, byte [ebp - 0x60c449]
mov edx, 1
mov eax, dword [ebp - 0x60c464]
call fcn.00403240
lea eax, [ebp - 0x60c449]
call fcn.00404880
cmp byte [ebp - 0x60c449], 0
je 0x4055cd
lea eax, [ebp - 0x61c5c0]
mov dl, byte [ebp - 0x60c449]
call fcn.00403030
mov edx, dword [ebp - 0x61c5c0]
mov eax, 0x4095c8
call fcn.00403090
lea eax, [ebp - 0x60c449]
call fcn.00404880
cmp byte [ebp - 0x60c449], 0
jne 0x405598
lea eax, [ebp - 0x60c464]
mov edx, dword [0x4095c8]
call fcn.00402fb0
mov eax, 0x4095c8
mov ecx, dword [0x4095c8]
mov edx, dword [ebp - 0x60c448]
call fcn.004030d4
mov eax, dword [0x4095c8]
call fcn.00403088
cmp eax, 2
jl 0x40568d
lea eax, [ebp - 0x61c5c4]
push eax
mov eax, dword [0x4095c8]
call fcn.00403088
mov edx, eax
dec edx
mov ecx, 2
mov eax, dword [0x4095c8]
call fcn.00403240
mov eax, dword [ebp - 0x61c5c4]
mov edx, 0x405ebc
call fcn.00403148
jne 0x40568d
lea eax, [ebp - 0x60c47c]
push eax
mov eax, dword [0x4095c8]
call fcn.00403088
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [0x4095c8]
call fcn.00403240
lea edx, [ebp - 0x60c480]
mov eax, dword [ebp - 0x60c47c]
call fcn.00404bf8
cmp dword [ebp - 0x60c480], 0
je 0x405e37
mov eax, dword [ebp - 0x60c480]
call fcn.00404fbc
jmp 0x405e37
mov ebx, 8
lea esi, [ebp - 8]
mov eax, esi
call fcn.00404880
inc esi
dec ebx
jne 0x405695
mov ebx, 8
lea esi, [ebp - 0x10]
mov eax, esi
call fcn.00404880
inc esi
dec ebx
jne 0x4056a8
mov ebx, 8
lea esi, [ebp - 0x18]
mov eax, esi
call fcn.00404880
inc esi
dec ebx
jne 0x4056bb
mov byte [ebp - 0x60c442], 0
push ebp
call fcn.00405438
pop ecx
mov dword [ebp - 0x60c470], eax
mov dword [ebp - 0x60c46c], edx
cmp dword [ebp - 0x60c46c], 0
jne 0x4056f7
cmp dword [ebp - 0x60c470], 0x6000
jbe 0x405710
jmp 0x4056f9
jle 0x405710
imul eax, dword [ebp - 0x60c43c], 0x1801
mov dword [ebp + eax*4 - 0x60c438], 0x6000
jmp 0x405727
imul eax, dword [ebp - 0x60c43c], 0x1801
mov edx, dword [ebp - 0x60c470]
mov dword [ebp + eax*4 - 0x60c438], edx
push ebp
call fcn.00405438
pop ecx
mov ebx, eax
test bl, bl
je 0x405744
push ebp
call fcn.00405438
pop ecx
inc eax
mov dword [ebp - 0xc038], eax
jmp 0x40574e
mov bl, 1
xor eax, eax
mov dword [ebp - 0xc038], eax
mov esi, dword [ebp - 0x60c43c]
add esi, 0x100
xor eax, eax
mov al, bl
sub esi, eax
and esi, 0x800000ff
jns 0x405770
dec esi
or esi, 0xffffff00
inc esi
imul eax, esi, 0x1801
mov eax, dword [ebp + eax*4 - 0x60c438]
sub eax, dword [ebp - 0xc038]
mov dword [ebp - 0xc034], eax
cmp dword [ebp - 0xc034], 0x3c00
jle 0x40579f
mov dword [ebp - 0xc034], 0x3c00
mov ebx, 0x4000
sub ebx, dword [ebp - 0xc034]
cmp ebx, dword [ebp - 0xc038]
jle 0x4057b8
mov ebx, dword [ebp - 0xc038]
add dword [ebp - 0xc034], ebx
mov eax, dword [ebp - 0xc038]
sub eax, ebx
mov ebx, eax
mov eax, dword [ebp - 0xc034]
mov dword [ebp - 0xc030], eax
lea eax, [ebp - 0x61c5c8]
mov ecx, dword [0x4095c8]
mov edx, 0x405ec8
call fcn.004030d4
mov eax, dword [ebp - 0x61c5c8]
call fcn.004031fc
push eax
mov eax, dword [0x4095b4]
push eax
call sub.user32.dll_SetWindowTextA
lea eax, [ebp - 0x61c5a0]
push eax
mov eax, dword [0x4095c8]
call fcn.004031fc
push eax
call sub.kernel32.dll_FindFirstFileA_1
cmp eax, 0xffffffff
jne 0x405826
mov byte [ebp - 0xc029], 0
jmp 0x40588e
push eax
call sub.kernel32.dll_FindClose_1
push 0x23
mov eax, dword [0x4080b8]
push eax
lea eax, [ebp - 0x61c5cc]
mov ecx, 0x405ed8
mov edx, dword [0x4095c8]
call fcn.004030d4
mov eax, dword [ebp - 0x61c5cc]
call fcn.004031fc
push eax
mov eax, dword [0x4094f4]
push eax
call sub.user32.dll_MessageBoxA_1
sub eax, 2
je 0x405882
sub eax, 4
je 0x405870
dec eax
je 0x405879
jmp 0x40588e
mov byte [ebp - 0xc029], 0
jmp 0x40588e
mov byte [ebp - 0xc029], 1
jmp 0x40588e
mov byte [0x409584], 1
jmp 0x405e4d
cmp byte [ebp - 0xc029], 0
je 0x4058c6
lea eax, [ebp - 0x61c5d0]
mov ecx, dword [0x4095c8]
mov edx, 0x405f08
call fcn.004030d4
mov eax, dword [ebp - 0x61c5d0]
call fcn.004031fc
push eax
mov eax, dword [0x4095b4]
push eax
call sub.user32.dll_SetWindowTextA
jmp 0x4058f3
lea eax, [ebp - 0x61c5d4]
mov ecx, dword [0x4095c8]
mov edx, 0x405f1c
call fcn.004030d4
mov eax, dword [ebp - 0x61c5d4]
call fcn.004031fc
push eax
mov eax, dword [0x4095b4]
push eax
call sub.user32.dll_SetWindowTextA
lea edx, [ebp - 0x60c47c]
mov eax, dword [0x4095c8]
call fcn.00404f1c
lea edx, [ebp - 0x60c480]
mov eax, dword [ebp - 0x60c47c]
call fcn.00404bf8
cmp dword [ebp - 0x60c480], 0
je 0x405928
mov eax, dword [ebp - 0x60c480]
call fcn.00404fbc
cmp byte [ebp - 0xc029], 0
jne 0x40598c
push 0
push 0x80
push 2
push 0
push 0
push 0x40000000
mov eax, dword [0x4095c8]
call fcn.004031fc
push eax
call sub.kernel32.dll_CreateFileA_1
mov dword [0x4095c0], eax
cmp dword [0x4095c0], 0xffffffff
jne 0x405966
call fcn.00404818
imul eax, esi, 0x1801
lea edx, [ebp + eax*4 - 0x60c434]
mov ecx, dword [ebp - 0xc038]
mov eax, dword [0x4095c0]
call fcn.0040469c
test al, al
jne 0x40598c
call fcn.00404818
imul eax, dword [ebp - 0x60c43c], 0x1801
lea edx, [ebp + eax*4 - 0x60c434]
imul eax, esi, 0x1801
lea eax, [ebp + eax*4 - 0x60c434]
mov ecx, dword [ebp - 0xc038]
call fcn.00402570
mov eax, dword [ebp - 0xc034]
cdq
mov dword [ebp - 0xc020], eax
mov dword [ebp - 0xc01c], edx
imul eax, esi, 0x1801
lea eax, [ebp + eax*4 - 0x60c438]
lea eax, [eax + ebx + 4]
lea edx, [ebp - 0xc018]
mov ecx, dword [ebp - 0xc034]
call fcn.00402570
mov dword [ebp - 0xc028], 0
mov dword [ebp - 0xc024], 0
xor ebx, ebx
lea esi, [ebp - 0x60e490]
lea eax, [ebp - 0x60f490]
lea edx, [ebp - 0x60cc90]
mov dword [ebp - 0x60c48c], edx
lea edx, [ebp - 0x60d490]
mov dword [ebp - 0x60c490], edx
mov dword [esi], 1
mov dword [esi + 4], 0
cmp ebx, 0x40
jge 0x405a45
mov dword [eax], 2
mov dword [eax + 4], 0
jmp 0x405a52
mov dword [eax], 1
mov dword [eax + 4], 0
mov edx, dword [ebp - 0x60c48c]
mov dword [edx], ebx
mov edx, dword [ebp - 0x60c490]
mov dword [edx], ebx
inc ebx
add dword [ebp - 0x60c490], 4
add dword [ebp - 0x60c48c], 4
add eax, 8
add esi, 8
cmp ebx, 0x200
jne 0x405a24
xor eax, eax
mov dword [ebp - 0x60fc90], eax
xor eax, eax
mov dword [ebp - 0x610490], eax
push ebp
lea eax, [ebp - 0x610490]
push eax
lea ecx, [ebp - 0x61c460]
lea edx, [ebp - 0x60d490]
lea eax, [ebp - 0x60f490]
call fcn.00405228
pop ecx
mov dword [ebp - 0x60c458], 0
mov dword [ebp - 0x60c454], 0
mov dword [ebp - 0x60c478], 0
mov dword [ebp - 0x60c474], 0
mov dword [ebp - 0x60c488], 0
mov dword [ebp - 0x60c484], 0
jmp 0x405d80
mov eax, dword [ebp - 0x60c478]
mov edx, dword [ebp - 0x60c474]
and eax, 0xff
xor edx, edx
cmp edx, 0
jne 0x405b9d
cmp eax, 0
jne 0x405b9d
cmp dword [ebp - 0x60c474], 0
jne 0x405b2d
cmp dword [ebp - 0x60c478], 0x800
jb 0x405b4d
jmp 0x405b2f
jl 0x405b4d
mov eax, dword [ebp - 0x60c478]
mov edx, dword [ebp - 0x60c474]
and eax, 0x3ff
xor edx, edx
cmp edx, 0
jne 0x405b9d
cmp eax, 0
jne 0x405b9d
push ebp
lea eax, [ebp - 0x60fc90]
push eax
lea ecx, [ebp - 0x616478]
lea edx, [ebp - 0x60cc90]
lea eax, [ebp - 0x60e490]
call fcn.00405228
pop ecx
push 1
push 0
push 0
push 0
lea eax, [ebp - 0x61c5bc]
push eax
call sub.user32.dll_PeekMessageA
test eax, eax
je 0x405b9d
lea eax, [ebp - 0x61c5bc]
push eax
call sub.user32.dll_TranslateMessage
lea eax, [ebp - 0x61c5bc]
push eax
call sub.user32.dll_DispatchMessageA
mov eax, dword [ebp - 0x60fc90]
mov dword [edi], eax
push ebp
call fcn.004053dc
pop ecx
mov edx, dword [edi]
mov eax, dword [edx + eax*4 + 0x10]
mov dword [edi], eax
mov eax, dword [edi]
cmp dword [eax + 0x10], 0
jne 0x405ba5
mov eax, dword [edi]
mov ecx, dword [eax]
add dword [ebp + ecx*8 - 0x60e490], 1
adc dword [ebp + ecx*8 - 0x60e48c], 0
cmp ecx, 0x100
jl 0x405d5b
mov eax, ecx
sub eax, 0x100
add eax, 2
mov dword [ebp - 0x60c460], eax
cmp ecx, 0x1ff
jne 0x405c0d
xor ebx, ebx
push ebp
call fcn.004053dc
pop ecx
mov ecx, ebx
shl eax, cl
add dword [ebp - 0x60c460], eax
inc ebx
cmp ebx, 0xc
jne 0x405bf6
mov eax, dword [ebp - 0x610490]
mov dword [edi], eax
push ebp
call fcn.004053dc
pop ecx
mov edx, dword [edi]
mov eax, dword [edx + eax*4 + 0x10]
mov dword [edi], eax
mov eax, dword [edi]
cmp dword [eax + 0x10], 0
jne 0x405c15
mov eax, dword [edi]
mov ecx, dword [eax]
add dword [ebp + ecx*8 - 0x60f490], 1
adc dword [ebp + ecx*8 - 0x60f48c], 0
shl ecx, 5
inc ecx
mov dword [ebp - 0x60c45c], ecx
xor ebx, ebx
push ebp
call fcn.004053dc
pop ecx
mov ecx, ebx
shl eax, cl
add dword [ebp - 0x60c45c], eax
inc ebx
cmp ebx, 5
jne 0x405c4c
mov esi, dword [ebp - 0x60c460]
dec esi
test esi, esi
jl 0x405cc3
inc esi
xor ebx, ebx
push ebp
mov eax, dword [ebp - 0xc034]
cdq
add eax, dword [ebp - 0x60c458]
adc edx, dword [ebp - 0x60c454]
push edx
push eax
mov eax, dword [ebp - 0x60c45c]
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
mov eax, ebx
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
sub eax, dword [ebp - 0xc028]
sbb edx, dword [ebp - 0xc024]
mov al, byte [ebp + eax - 0xc018]
call fcn.0040505c
pop ecx
inc ebx
dec esi
jne 0x405c71
mov eax, dword [ebp - 0x60c460]
cdq
add dword [ebp - 0x60c458], eax
adc dword [ebp - 0x60c454], edx
add dword [ebp - 0x60c488], 1
adc dword [ebp - 0x60c484], 0
mov eax, dword [ebp - 0x60c488]
mov edx, dword [ebp - 0x60c484]
and eax, 0x3f
xor edx, edx
cmp edx, 0
jne 0x405d72
cmp eax, 0
jne 0x405d72
cmp dword [ebp - 0x60c484], 0
jne 0x405d19
cmp dword [ebp - 0x60c488], 0x400
jb 0x405d39
jmp 0x405d1b
jl 0x405d39
mov eax, dword [ebp - 0x60c488]
mov edx, dword [ebp - 0x60c484]
and eax, 0x1ff
xor edx, edx
cmp edx, 0
jne 0x405d72
cmp eax, 0
jne 0x405d72
push ebp
lea eax, [ebp - 0x610490]
push eax
lea ecx, [ebp - 0x61c460]
lea edx, [ebp - 0x60d490]
lea eax, [ebp - 0x60f490]
call fcn.00405228
pop ecx
jmp 0x405d72
push ebp
mov eax, ecx
call fcn.0040505c
pop ecx
add dword [ebp - 0x60c458], 1
adc dword [ebp - 0x60c454], 0
add dword [ebp - 0x60c478], 1
adc dword [ebp - 0x60c474], 0
mov eax, dword [ebp - 0x60c470]
mov edx, dword [ebp - 0x60c46c]
push edx
push eax
mov eax, dword [ebp - 0xc038]
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
cmp edx, dword [ebp - 0x60c454]
jne 0x405db0
cmp eax, dword [ebp - 0x60c458]
jbe 0x405dbf
jmp 0x405db2
jle 0x405dbf
cmp byte [0x409584], 0
je 0x405af0
cmp byte [ebp - 0xc029], 0
jne 0x405e1c
push ebp
call fcn.004051bc
pop ecx
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 8]
push eax
mov eax, dword [0x4095c0]
push eax
call sub.kernel32.dll_SetFileTime
test eax, eax
jne 0x405def
call fcn.00404818
mov eax, dword [0x4095c0]
push eax
call sub.kernel32.dll_CloseHandle_1
test eax, eax
jne 0x405e03
call fcn.00404818
cmp byte [0x409584], 0
je 0x405e1c
mov eax, dword [0x4095c8]
call fcn.004031fc
push eax
call sub.kernel32.dll_DeleteFileA
mov eax, dword [ebp - 0x60c43c]
inc eax
and eax, 0x800000ff
jns 0x405e31
dec eax
or eax, 0xffffff00
inc eax
mov dword [ebp - 0x60c43c], eax
cmp byte [0x40a5fc], 0
jne 0x405e4d
cmp byte [0x409584], 0
je 0x40555c
mov eax, dword [0x4095bc]
push eax
call sub.kernel32.dll_CloseHandle_1
test eax, eax
jne 0x405e61
call fcn.004047d4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x405eac
lea eax, [ebp - 0x61c5d4]
mov edx, 6
call fcn.00402f3c
lea eax, [ebp - 0x60c480]
mov edx, 2
call fcn.00402f3c
lea eax, [ebp - 0x60c464]
call fcn.00402f18
lea eax, [ebp - 0x60c448]
call fcn.00402f18
ret