Function at 0x3002246a
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x328
push ebx
push esi
push edi
xor ebx, ebx
push dword [ebp + 8]
mov esi, ecx
mov dword [ebp - 8], ebx
xor edi, edi
mov dword [ebp - 0xc], ebx
mov word [ebp - 0x328], bx
call fcn.3002279d
test eax, eax
je 0x3002249e
or dword [esi + 0x6dc], 4
jmp 0x300224a5
and dword [esi + 0x6dc], 0xfffffffb
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x11c]
mov ecx, eax
and ecx, 2
jne 0x300224b8
mov dword [ebp + 0x14], ebx
test al, 4
jne 0x300224c0
cmp ecx, ebx
je 0x30022503
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
dec eax
je 0x30022501
dec eax
je 0x300224f6
dec eax
je 0x300224e2
dec eax
jne 0x30022789
xor eax, eax
cmp dword [ecx + 0x10], 1
setg al
mov edi, eax
jmp 0x30022503
push ebx
mov ecx, esi
call fcn.3000e420
xor ecx, ecx
cmp eax, 1
setg cl
mov edi, ecx
jmp 0x30022503
xor eax, eax
cmp dword [esi + 0x468], 1
jmp 0x300224db
xor edi, edi
mov ecx, dword [esi + 0x504]
xor eax, eax
cmp edi, ebx
mov ebx, 0xffffefff
setne al
and eax, 1
and ecx, ebx
shl eax, 0xc
or eax, ecx
test edi, edi
mov dword [esi + 0x504], eax
je 0x300225b2
push dword [ebp + 0x14]
mov ecx, esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.30022ef4
test eax, eax
je 0x30022789
test byte [esi + 0x505], 0x10
je 0x300225b8
xor eax, eax
lea ecx, [ebp - 0x328]
push eax
push ecx
push eax
mov word [ebp - 0x328], ax
call fcn.30029faa
test eax, eax
jne 0x30022789
lea eax, [ebp - 0x328]
push 1
push eax
call fcn.30029c22
test eax, eax
jne 0x30022789
lea eax, [ebp - 0x120]
push 0x104
push eax
lea eax, [ebp - 0x328]
push eax
call fcn.30029288
lea eax, [ebp - 0x120]
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0x120]
mov dword [esi + 0x6f0], eax
jmp 0x300225bf
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xc], eax
and dword [esi + 0x6f0], 0
mov eax, dword [ebp + 0x10]
push dword [ebp + 0x18]
mov eax, dword [eax + 0x11c]
shr eax, 3
and eax, 1
push eax
push dword [ebp - 0xc]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.30022084
test eax, eax
mov dword [ebp - 8], eax
je 0x30022782
cmp dword [esi + 0x6f4], 0
je 0x30022603
mov ecx, esi
call fcn.30023052
test eax, eax
je 0x30022773
mov eax, dword [esi + 0x4b8]
push 0
push dword [eax + 0x18]
call dword [sym.imp.USER32.dll_EnableWindow]
mov ecx, esi
call fcn.30021cd0
push 1
mov dword [ebp - 4], eax
pop edi
cmp dword [esi + 0x464], edi
jl 0x3002263c
push edi
mov ecx, esi
call fcn.3000ec8c
and dword [eax], ebx
inc edi
cmp edi, dword [esi + 0x464]
jle 0x30022629
mov edi, dword [ebp + 0x10]
test byte [edi + 0x11c], 8
je 0x3002264d
mov ebx, dword [ebp + 0x18]
jmp 0x30022650
push 1
pop ebx
mov eax, dword [0x30033ce8]
mov eax, dword [eax + 0x260]
mov ecx, dword [eax + 0x14]
call fcn.3001f66e
push 8
call fcn.30009f32
mov eax, dword [0x30033ce8]
or byte [eax + 0x255], 2
cmp dword [ebp - 4], 0
jne 0x3002269b
mov ecx, ebx
dec ebx
test ecx, ecx
je 0x3002269b
lea eax, [ebp - 8]
push edi
push eax
mov ecx, esi
call fcn.30022878
mov dword [ebp - 4], eax
test eax, eax
mov eax, dword [0x30033ce8]
je 0x3002267c
and byte [eax + 0x255], 0xfd
push 8
call fcn.30009f66
mov eax, dword [0x30033ce8]
push 1
pop ebx
mov eax, dword [eax + 0x260]
push ebx
mov ecx, dword [eax + 0x14]
call fcn.3001f640
cmp dword [esi + 0x464], ebx
mov edi, ebx
jl 0x300226ec
push edi
mov ecx, esi
call fcn.3000ec8c
test byte [eax + 1], 0x10
je 0x300226e3
push 2
push 0
mov ecx, eax
call fcn.30015350
inc edi
cmp edi, dword [esi + 0x464]
jle 0x300226ca
mov eax, dword [esi + 0x6f4]
test eax, eax
je 0x3002270b
cmp dword [ebp - 4], 0
push eax
jne 0x30022705
call dword [sym.imp.GDI32.dll_EndDoc]
jmp 0x3002270b
call dword [sym.imp.GDI32.dll_AbortDoc]
cmp dword [ebp - 4], 0
jne 0x3002272c
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
lea eax, [esi + 0x520]
push eax
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
mov eax, dword [esi + 0x4b8]
push ebx
push dword [eax + 0x18]
call dword [sym.imp.USER32.dll_EnableWindow]
mov ecx, esi
call fcn.30021d2e
cmp byte [ebp - 0x120], 0
je 0x30022759
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [esi + 0x500]
lea edx, [ebp - 4]
push 0x30005bd0
push edx
mov ecx, dword [eax]
push 0x80000
push eax
call dword [ecx + 0x34]
cmp dword [ebp - 8], 0
je 0x30022782
push dword [ebp - 8]
call fcn.30024092
pop ecx
mov ecx, esi
call fcn.300230aa
pop edi
pop esi
pop ebx
leave
ret 0x14