Function at 0x51ba94
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 4], edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x10], eax
xor eax, eax
push ebp
push 0x51c0bb
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x433df0]
call fcn.00433fa4
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
call fcn.00465a30
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
call fcn.00465f2c
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
call fcn.00465a30
dec eax
cmp eax, 0
jl 0x51bfb7
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
cmp byte [eax + 0x474], 0
jne 0x51c098
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
call fcn.00465288
cmp eax, 2
jl 0x51bfaa
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
cmp dword [eax + 0x20], 2
jne 0x51bfaa
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
mov edx, dword [eax + 8]
mov eax, 0x51c0d8
call fcn.00406abc
test eax, eax
jg 0x51bbee
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
mov edx, dword [eax + 8]
mov eax, 0x51c10c
call fcn.00406abc
test eax, eax
jg 0x51bbee
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
mov edx, dword [eax + 8]
mov eax, 0x51c13c
call fcn.00406abc
test eax, eax
jle 0x51bdff
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
mov edx, dword [eax + 8]
mov eax, 0x51c0d8
call fcn.00406abc
test eax, eax
jle 0x51bc25
mov edx, 0x80000002
mov eax, dword [ebp - 0x1c]
call fcn.00434080
jmp 0x51bc69
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
mov edx, dword [eax + 8]
mov eax, 0x51c10c
call fcn.00406abc
test eax, eax
jle 0x51bc5c
mov edx, 0x80000001
mov eax, dword [ebp - 0x1c]
call fcn.00434080
jmp 0x51bc69
mov edx, 0x80000000
mov eax, dword [ebp - 0x1c]
call fcn.00434080
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
mov edx, dword [eax + 8]
lea eax, [ebp - 4]
call fcn.0040617c
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
mov edx, dword [eax + 8]
lea eax, [ebp - 0xc]
call fcn.0040617c
mov edx, dword [ebp - 4]
mov eax, 0x51c16c
call fcn.00406abc
mov ecx, eax
dec ecx
lea eax, [ebp - 4]
mov edx, 1
call fcn.0040681c
mov ebx, dword [ebp - 0xc]
test ebx, ebx
je 0x51bce9
mov eax, ebx
sub eax, 0xa
cmp word [eax], 2
je 0x51bce9
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0xc]
call fcn.0040573c
mov ebx, eax
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x51bd06
mov edx, eax
sub edx, 0xa
cmp word [edx], 2
je 0x51bd06
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0xc]
call fcn.0040573c
test eax, eax
je 0x51bd0f
sub eax, 4
mov eax, dword [eax]
cmp word [ebx + eax*2 - 2], 0x5c
jne 0x51bd44
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
call fcn.004349d8
test al, al
je 0x51bf5e
cmp dword [ebp - 4], 0
je 0x51bf5e
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
call fcn.004343e4
jmp 0x51bf5e
lea eax, [ebp - 8]
xor edx, edx
call fcn.0040617c
mov edx, dword [ebp - 4]
mov eax, 0x51c17c
call fcn.00406abc
test eax, eax
jle 0x51bda9
lea eax, [ebp - 0x24]
push eax
mov edx, dword [ebp - 4]
mov eax, 0x51c17c
call fcn.00406abc
mov ecx, eax
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.0040674c
mov edx, dword [ebp - 0x24]
lea eax, [ebp - 8]
call fcn.0040644c
mov edx, dword [ebp - 4]
mov eax, 0x51c17c
call fcn.00406abc
mov ecx, eax
add ecx, 2
lea eax, [ebp - 4]
mov edx, 1
call fcn.0040681c
xor ecx, ecx
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 0x1c]
call fcn.004340e8
test al, al
je 0x51bf5e
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
call fcn.00434930
test al, al
je 0x51bddd
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x1c]
call fcn.0043455c
jmp 0x51bf5e
mov eax, dword [ebp - 4]
mov edx, 0x51c190
call fcn.00406744
jne 0x51bf5e
xor edx, edx
mov eax, dword [ebp - 0x1c]
call fcn.0043455c
jmp 0x51bf5e
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
cmp dword [eax + 0x14], 1
jne 0x51bece
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
mov eax, dword [eax + 8]
call fcn.0040cd44
test al, al
je 0x51bf5e
xor edx, edx
push ebp
push 0x51be93
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
mov ebx, dword [eax + 8]
mov dword [ebp - 0x28], ebx
mov eax, dword [ebp - 0x28]
call fcn.004061b4
push eax
call sub.kernel32.dll_DeleteFileW
cmp eax, 1
sbb eax, eax
inc eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x51bf5e
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
mov eax, dword [eax + 8]
call fcn.0040cd8c
test al, al
je 0x51bf5e
xor eax, eax
push ebp
push 0x51bf28
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
mov eax, dword [eax + 8]
call fcn.0040d330
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x51bf5e
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
mov eax, dword [eax + 8]
mov edx, 0x51c1b0
call fcn.0052ade4
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
call fcn.004653d0
mov eax, dword [0x5359fc]
mov eax, dword [eax]
call fcn.004aae4c
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffff
jne 0x51bb1c
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
call fcn.00465f78
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
call fcn.00465a30
mov edx, dword [ebp - 0x20]
sub edx, eax
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
call fcn.00465a30
dec eax
cmp eax, 0
jl 0x51c090
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
call fcn.00465288
test eax, eax
je 0x51c047
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
call fcn.00465288
dec eax
jne 0x51c083
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
call fcn.00464afc
test al, al
jne 0x51c083
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x384]
mov eax, dword [eax + 0x2c8]
mov edx, dword [ebp - 0x18]
call fcn.00465e0c
call fcn.004653d0
dec dword [ebp - 0x18]
cmp dword [ebp - 0x18], 0xffffffff
jne 0x51c008
mov eax, dword [ebp - 0x1c]
call fcn.00404228
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51c0c2
lea eax, [ebp - 0x24]
call fcn.00406118
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00406120
ret