Function at 0x472968
Capabilities:
Delete file

Disassembly:
push ebx
push esi
push edi
push ecx
mov ebx, eax
mov byte [esp], 2
mov eax, dword [0x4beecc]
cmp byte [eax], 0
je 0x47298a
mov eax, dword [0x4be570]
cmp byte [eax], 0
je 0x472f5f
mov eax, dword [0x4bed14]
cmp byte [eax], 0
jne 0x472f5f
mov eax, dword [0x4bee94]
cmp dword [eax], 0
je 0x4729c0
push 0
push 0xf120
push 0x112
mov eax, dword [0x4bee94]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
jmp 0x472f5f
mov eax, dword [ebx + 0xc]
cmp byte [eax + 0x96], 4
jne 0x4729db
mov eax, ebx
call fcn.0044f5d0
test al, al
je 0x472f5f
cmp byte [ebx + 0x443], 0
je 0x472a3f
mov eax, dword [0x4be9c8]
cmp byte [eax], 0
jne 0x472a3f
mov ax, 0x47
call fcn.004aa600
mov edx, dword [ebx + 0xc]
mov edx, dword [edx + 0xc]
call fcn.004ae1b0
mov eax, dword [0x4bedb0]
mov edx, 0x12
call fcn.004b12a8
mov byte [esp + 1], al
cmp byte [esp + 1], 1
jne 0x472a2b
mov eax, ebx
call fcn.00473508
test al, al
je 0x472f5f
cmp byte [esp + 1], 3
jne 0x472a3f
mov eax, dword [0x4be8bc]
mov byte [eax], 0
jmp 0x472f5f
cmp byte [ebx + 0x447], 0
je 0x472abf
xor esi, esi
inc esi
movsx eax, si
mov edx, dword [0x4be754]
cmp dword [edx + eax*4 - 4], 0
je 0x472ab5
cmp si, word [ebx + 0x424]
je 0x472ab5
mov edx, dword [0x4be754]
mov eax, dword [edx + eax*4 - 4]
mov al, byte [eax + 0x442]
cmp al, 0x1a
jle 0x472ab5
movsx eax, al
imul eax, eax, 0xb
mov edx, dword [0x4beaf4]
mov al, byte [edx + eax*8 - 0x8f8]
cmp al, byte [ebx + 0x442]
jne 0x472ab5
push 0
push 0
push 0x10
movsx eax, si
mov edx, dword [0x4be754]
mov eax, dword [edx + eax*4 - 4]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
dec eax
je 0x472f5f
mov eax, dword [0x4be4ec]
cmp si, word [eax]
jne 0x472a4a
cmp byte [ebx + 0x1f6], 0
je 0x472af8
mov byte [ebx + 0x1f7], 1
mov eax, dword [0x4bed48]
mov byte [eax], 1
mov eax, dword [0x4be8bc]
cmp byte [eax], 0
jne 0x472aef
push 0
push 0
push 0x10
mov eax, dword [ebx]
push eax
call sub.user32.dll_PostMessageA
mov byte [esp], 1
jmp 0x472f5f
mov byte [esp], 0
mov byte [ebx + 0x44b], 1
mov eax, dword [0x4be810]
mov byte [eax], 0x13
mov eax, dword [ebx + 0xc]
cmp dword [eax + 0x5c], 0
jne 0x472b3c
cmp dword [eax + 0x48], 0
jne 0x472b3c
cmp byte [ebx + 0x437], 0
jne 0x472b3c
cmp byte [eax + 0xa2], 0
jne 0x472b3c
cmp byte [ebx + 0x439], 0
jne 0x472b3c
mov eax, ebx
call fcn.004728e8
cmp byte [ebx + 0x442], 2
jle 0x472b55
mov eax, dword [ebx + 0x1e4]
test eax, eax
je 0x472b55
push eax
call sub.user32.dll_DestroyWindow
push 0x4000
mov eax, dword [ebx + 0x1e0]
add eax, 0xa
push eax
mov eax, dword [ebx + 0x1dc]
push eax
call sub.kernel32.dll_VirtualFree_1
cmp dword [ebx + 0x4c], 0
je 0x472ba6
mov eax, ebx
call fcn.00451ec8
mov eax, dword [ebx + 0x4c]
push eax
call sub.user32.dll_DestroyWindow
mov esi, dword [ebx + 0x5c]
test esi, esi
je 0x472ba6
mov eax, esi
mov edx, dword [eax + 0x1a0]
call dword [edx]
mov edx, 0x1a4
call fcn.00402524
xor eax, eax
mov dword [ebx + 0x5c], eax
mov eax, dword [ebx + 0x1e4]
test eax, eax
je 0x472bbe
push eax
call sub.user32.dll_DestroyWindow
xor eax, eax
mov dword [ebx + 0x1e4], eax
mov eax, dword [ebx + 0x50]
test eax, eax
je 0x472bcb
push eax
call sub.user32.dll_DestroyWindow
mov eax, dword [0x4bef50]
cmp dword [eax], 0
je 0x472bf1
cmp dword [ebx + 0x84], 0
je 0x472bf1
mov eax, dword [ebx + 0x84]
mov byte [eax + 5], 0
mov word [eax + 0x208], 0
mov si, 0x3e8
mov edi, dword [0x4be754]
mov eax, dword [edi]
test eax, eax
je 0x472c1a
mov edx, dword [eax + 0xc]
mov edx, dword [edx + 0x3c]
cmp edx, dword [ebx + 0xc]
jne 0x472c1a
push 0
push 0
push 0x10
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
add edi, 4
dec si
jne 0x472bfb
xor eax, eax
xor esi, esi
inc esi
movsx edx, si
mov ecx, dword [0x4be754]
cmp dword [ecx + edx*4 - 4], 0
je 0x472c54
cmp si, word [ebx + 0x424]
je 0x472c54
mov ecx, dword [0x4be754]
mov edx, dword [ecx + edx*4 - 4]
mov edx, dword [edx + 0x30]
cmp edx, dword [ebx + 0x30]
jne 0x472c54
mov al, 1
mov edx, dword [0x4be4ec]
cmp si, word [edx]
je 0x472c63
test al, al
je 0x472c26
cmp byte [ebx + 0x442], 0
jle 0x472c77
lea eax, [ebx + 0x15c]
call fcn.004a381c
mov al, byte [ebx + 0x442]
test al, al
jle 0x472d5b
movsx eax, al
mov edx, dword [0x4be48c]
cmp dword [edx + eax*4 - 4], 0
je 0x472d5b
xor eax, eax
xor esi, esi
inc esi
movsx edx, si
mov ecx, dword [0x4be754]
cmp dword [ecx + edx*4 - 4], 0
je 0x472cd1
cmp si, word [ebx + 0x424]
je 0x472cd1
mov ecx, dword [0x4be754]
mov edx, dword [ecx + edx*4 - 4]
mov dl, byte [edx + 0x442]
cmp dl, byte [ebx + 0x442]
jne 0x472cd1
mov al, 1
mov edx, dword [0x4be4ec]
cmp si, word [edx]
je 0x472ce0
test al, al
je 0x472c9d
test al, al
jne 0x472d5b
movsx eax, byte [ebx + 0x442]
mov edx, dword [0x4be4fc]
cmp byte [edx + eax - 1], 0xff
jne 0x472d1c
push 0x4000
mov edx, dword [ebx + 0x160]
shl edx, 2
add edx, 0x10
push edx
mov edx, dword [0x4be48c]
mov eax, dword [edx + eax*4 - 4]
push eax
call sub.kernel32.dll_VirtualFree_1
jmp 0x472d41
push 0x4000
mov edx, dword [ebx + 0x160]
add edx, 2
lea edx, [edx + edx*2]
add edx, 0x10
push edx
mov edx, dword [0x4be48c]
mov eax, dword [edx + eax*4 - 4]
push eax
call sub.kernel32.dll_VirtualFree_1
mov al, byte [ebx + 0x442]
movsx edx, al
mov ecx, dword [0x4be48c]
xor esi, esi
mov dword [ecx + edx*4 - 4], esi
call fcn.004a1fac
mov eax, ebx
call fcn.0044f57c
mov esi, dword [ebx + 0xc]
cmp byte [esi + 0xa2], 0
je 0x472d90
mov eax, dword [esi + 0xc]
push eax
call sub.kernel32.dll_DeleteFileA_1
cmp eax, 1
sbb eax, eax
inc eax
test al, al
jne 0x472d90
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + 0xc]
mov ax, 4
call fcn.004acdac
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x472da6
push 0x4000
mov edx, dword [ebx + 0x18]
push edx
push eax
call sub.kernel32.dll_VirtualFree_1
movzx edi, byte [ebx + 0x440]
test di, di
jle 0x472dd0
mov si, 1
mov eax, dword [ebx + 0x34]
movsx edx, si
dec edx
shl edx, 2
add eax, edx
mov eax, dword [eax]
push eax
call sub.user32.dll_DestroyIcon
inc esi
dec di
jne 0x472db6
mov al, byte [ebx + 0x440]
test al, al
jbe 0x472dec
and eax, 0xff
mov edx, eax
shl edx, 2
mov eax, dword [ebx + 0x34]
call fcn.00402524
cmp byte [ebx + 0x442], 0
jne 0x472e05
mov eax, dword [ebx + 0xc]
cmp dword [eax + 0x5c], 0
jne 0x472e05
mov eax, dword [0x4bec74]
dec dword [eax]
mov eax, dword [ebx + 0xc]
mov edx, dword [eax + 0x1a0]
call dword [edx]
mov edx, 0x1a4
call fcn.00402524
xor eax, eax
mov dword [ebx + 0xc], eax
mov al, byte [ebx + 0x442]
cmp al, 0x1a
jle 0x472e41
movsx eax, al
imul eax, eax, 0xb
mov edx, dword [0x4beaf4]
lea eax, [edx + eax*8 - 0x948]
call fcn.004a91ac
mov al, byte [ebx + 0x442]
cmp al, 0xde
jge 0x472e81
movsx eax, al
add eax, eax
lea eax, [eax + eax*4]
mov edx, dword [0x4beb50]
lea eax, [edx + eax*8 + 0xd20]
call fcn.004a912c
movsx eax, byte [ebx + 0x442]
mov edx, eax
shl eax, 3
sub eax, edx
mov edx, dword [0x4bec00]
mov byte [edx + eax*2 + 0x259], 0
mov eax, dword [ebx + 0x10]
call fcn.004b8480
mov eax, dword [0x4bee54]
mov eax, dword [eax]
cmp eax, dword [ebx]
jne 0x472e99
call fcn.00456a54
mov eax, dword [0x4be8e4]
cmp dword [eax], 0
jbe 0x472ec4
push 0
movsx eax, word [ebx + 0x424]
call fcn.00472710
push eax
push 0x1308
mov eax, dword [0x4be8e4]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [0x4be744]
dec dword [eax]
mov eax, dword [0x4be744]
cmp dword [eax], 0
jne 0x472f51
xor eax, eax
call fcn.00447e94
xor eax, eax
call fcn.00428184
xor eax, eax
call fcn.004244dc
xor eax, eax
call fcn.0044ec28
mov eax, dword [0x4be588]
movsx eax, word [eax]
mov edx, dword [0x4be6d4]
mov dword [edx], eax
mov eax, dword [0x4be6d4]
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [0x4bef14]
movzx eax, byte [eax]
mov edx, dword [0x4be784]
movsx eax, word [edx + eax*2 + 0x1802]
mov edx, dword [0x4be6d4]
mov dword [edx + 0xc], eax
mov eax, dword [0x4be9cc]
mov eax, dword [eax]
mov edx, dword [0x4be6d4]
mov dword [edx + 8], eax
push 0xffffffffffffffff
mov eax, dword [0x4be6d4]
push eax
mov eax, dword [0x4beb60]
mov eax, dword [eax]
push eax
call sub.user32.dll_InvalidateRect
jmp 0x472f58
xor eax, eax
call fcn.0044ec28
mov byte [ebx + 0x446], 0
mov al, byte [esp]
pop edx
pop edi
pop esi
pop ebx
ret