Function at 0x46e81c
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x46ec99
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
xor edx, edx
mov dword [eax + 0x7e], edx
xor edx, edx
push ebp
push 0x46ec6c
push dword fs:[edx]
mov dword fs:[edx], esp
lea edx, [ebp - 8]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x34]
call fcn.004396dc
mov edx, dword [ebp - 8]
mov eax, dword [ebp + 8]
add eax, 0xffffffc8
call fcn.00405318
mov eax, dword [ebp + 8]
cmp dword [eax - 0x38], 0
jne 0x46e888
mov eax, dword [ebp + 8]
mov byte [eax - 0x39], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46ec76
xor edx, edx
push ebp
push 0x46e932
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x38]
call fcn.00437b4c
mov eax, dword [ebp + 8]
mov ebx, dword [eax - 0x38]
lea edx, [ebp - 4]
mov dword [ebp - 0xc], ebx
mov eax, dword [ebp - 0xc]
call fcn.0040e69c
mov eax, dword [ebp - 4]
call fcn.00437d0c
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x34]
call fcn.00439664
test al, al
je 0x46e928
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x34]
mov edx, 0x80
call fcn.0040a148
mov eax, dword [ebp + 8]
mov ebx, dword [eax - 0x34]
mov dword [ebp - 0xc], ebx
mov eax, dword [ebp - 0xc]
call fcn.00405710
push eax
call sub.kernel32.dll_DeleteFileA
cmp eax, 1
sbb eax, eax
inc eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x34]
call fcn.00439664
mov edx, dword [ebp + 8]
mov byte [edx - 0x39], al
mov eax, dword [ebp + 8]
cmp byte [eax - 0x39], 0
je 0x46e928
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46ec76
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46e93c
xor eax, eax
push ebp
push 0x46e985
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x40]
call fcn.00437b4c
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x44]
call fcn.00439664
test al, al
je 0x46e97b
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x44]
mov edx, 0x80
call fcn.0040a148
mov eax, dword [ebp + 8]
mov byte [eax - 0x45], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46e98f
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
mov eax, dword [eax + 0x82]
mov edx, dword [eax]
call dword [edx + 0x20]
mov ecx, eax
mov dl, 1
mov eax, dword [0x452ac0]
call fcn.0045431c
mov ebx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
mov dword [eax + 0x7e], ebx
xor edx, edx
push ebp
push 0x46ec5b
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp + 8]
cmp byte [eax - 0x46], 0
je 0x46e9f8
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
mov edx, dword [ebp + 8]
mov dword [ebx + 0x53], eax
mov dword [ebx + 0x4f], 0x46d1b0
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
mov edx, dword [ebp + 8]
mov dword [ebx + 0x4b], eax
mov dword [ebx + 0x47], fcn.0046dd80
jmp 0x46ea0e
mov eax, dword [ebp + 8]
xor eax, eax
mov dword [ebx + 0x4f], eax
mov dword [ebx + 0x53], eax
mov eax, dword [ebp + 8]
xor eax, eax
mov dword [ebx + 0x47], eax
mov dword [ebx + 0x4b], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
mov ebx, dword [eax + 0x7e]
mov byte [ebx + 0x26], 1
mov eax, dword [ebp + 8]
mov byte [ebx + 0xc], 1
mov eax, dword [ebp + 8]
lea eax, [ebx + 0xd]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x4c]
mov edx, dword [edx + 0x10]
call fcn.004052d4
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
mov ebx, dword [eax + 0x7e]
mov dword [ebx + 0x85], 0xa
mov eax, dword [ebp + 8]
mov dword [ebx + 0x70], 0x12c
mov eax, dword [ebp + 8]
lea eax, [ebx + 0x12]
mov edx, dword [ebp + 8]
mov edx, dword [edx - 0x44]
call fcn.004052d4
mov edx, dword [ebp + 8]
movzx edx, byte [edx - 0x45]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
mov eax, dword [eax + 0x7e]
mov byte [eax + 0x27], dl
mov edx, dword [ebp + 8]
mov byte [eax + 0x74], 0
mov edx, dword [ebp + 8]
call fcn.00454434
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
mov eax, dword [eax + 0x7e]
mov eax, dword [eax + 0x29]
cmp eax, 0xc8
jl 0x46eaca
mov edx, dword [ebp + 8]
cmp eax, 0x12c
jge 0x46eaca
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x44]
call fcn.00439664
test al, al
je 0x46eadb
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x44]
call fcn.0043981c
test eax, eax
je 0x46eadb
mov eax, dword [ebp + 8]
mov byte [eax - 0x4d], 1
jmp 0x46eadb
mov edx, dword [ebp + 8]
cmp eax, 0x194
jne 0x46eadb
mov eax, dword [ebp + 8]
mov byte [eax - 0x4e], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
cmp byte [eax + 0x87], 0
je 0x46eaf1
mov eax, dword [ebp + 8]
mov byte [eax - 0x4d], 0
mov eax, dword [ebp + 8]
cmp byte [eax - 0x4d], 0
jne 0x46ebb5
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
cmp byte [eax + 0x87], 0
jne 0x46eb16
mov eax, dword [ebp + 8]
cmp byte [eax - 0x4e], 0
je 0x46eb2a
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x4c]
mov dword [eax + 0x50], 3
mov eax, dword [ebp + 8]
mov byte [eax - 0x39], 1
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
cmp byte [eax + 0x88], 0
je 0x46eb57
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x4c]
dec dword [eax + 0x50]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x4c]
mov edx, dword [ebp + 8]
mov ecx, dword [edx - 0x58]
mov dword [eax + 0x34], ecx
mov ecx, dword [edx - 0x54]
mov dword [eax + 0x38], ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x44]
call fcn.00439664
test al, al
je 0x46ebb5
xor edx, edx
push ebp
push 0x46ebab
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x44]
mov edx, 0x80
call fcn.0040a148
mov eax, dword [ebp + 8]
mov ebx, dword [eax - 0x44]
mov dword [ebp - 0xc], ebx
mov eax, dword [ebp - 0xc]
call fcn.00405710
push eax
call sub.kernel32.dll_DeleteFileA
cmp eax, 1
sbb eax, eax
inc eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46ebb5
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
mov byte [eax + 0x86], 0
xor eax, eax
push ebp
push 0x46ec13
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x10]
mov eax, 0x46ecb0
call fcn.0044c378
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
mov eax, dword [eax + 0xa6]
xor ecx, ecx
call fcn.00428518
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
mov eax, dword [eax + 0xa6]
mov edx, 0x46ecd8
call fcn.00428984
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x46ec1d
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
add eax, 0x9a
call fcn.00405280
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46ec62
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
mov eax, dword [eax + 0x7e]
test eax, eax
je 0x46ec5a
mov edx, dword [ebp + 8]
call fcn.00404288
mov eax, dword [ebp + 8]
mov eax, dword [eax - 0x20]
xor edx, edx
mov dword [eax + 0x7e], edx
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x46eca0
lea eax, [ebp - 0x10]
call fcn.00405280
lea eax, [ebp - 8]
mov edx, 2
call fcn.004052a4
ret