Function at 0x425314
Capabilities:
Delete file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
push esi
push edi
mov edi, ecx
xor ecx, ecx
mov dword [esp + 0x20], edi
mov ebx, ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], ecx
test edx, edx
je 0x425375
push ecx
lea ecx, [esp + 0x14]
call fcn.004242b7
mov esi, eax
test esi, esi
js 0x4256b1
lea ecx, [esp + 0x10]
call fcn.004248a9
mov esi, eax
test esi, esi
js 0x4256b1
jmp 0x4253a6
xor edx, edx
lea ecx, [esp + 0x10]
call fcn.00424905
mov esi, eax
test esi, esi
js 0x4256b1
mov ecx, dword [esp + 0x10]
call fcn.004247f3
test eax, eax
jne 0x4253a1
mov esi, 0x8000ffff
jmp 0x4256b1
xor ecx, ecx
mov word [eax], cx
mov eax, dword [edi + 0x14]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x4253dc
xor edx, edx
push edx
lea edx, [ecx + eax]
lea ecx, [esp + 0x14]
call fcn.00424400
mov esi, eax
test esi, esi
js 0x4256b1
lea ecx, [esp + 0x10]
call fcn.004248a9
mov esi, eax
test esi, esi
js 0x4256b1
mov ecx, dword [edi + 0x14]
xor eax, eax
mov dword [esp + 0x34], eax
cmp dword [ecx + 0x20], eax
jbe 0x4256b1
mov edi, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
lea edx, [eax + 0x24]
mov dword [esp + 0x30], 1
add edx, ecx
mov dword [esp + 0x28], edx
mov ebx, dword [edx]
lea eax, [ebx + ecx]
neg ebx
sbb ebx, ebx
and ebx, eax
mov dword [esp + 0x3c], ebx
mov ebx, dword [edx + 4]
mov edx, edi
lea eax, [ebx + ecx]
neg ebx
lea ecx, [esp + 0x14]
sbb ebx, ebx
and ebx, eax
xor eax, eax
push eax
call fcn.004242b7
mov esi, eax
test esi, esi
js 0x42568f
test ebx, ebx
je 0x425487
xor eax, eax
lea ecx, [esp + 0x14]
push eax
mov edx, ebx
call fcn.00424400
mov esi, eax
test esi, esi
js 0x42568f
mov ebx, dword [esp + 0x14]
mov ecx, ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [esp + 0x38]
jne 0x42545f
sub ecx, edx
sar ecx, 1
push 0x5c
pop eax
sub ax, word [ebx + ecx*2 - 2]
movzx eax, ax
neg eax
sbb eax, eax
not eax
and eax, dword [esp + 0x30]
jmp 0x42548f
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
xor edx, edx
cmp dword [ecx + 0xc], edx
je 0x4254b9
test eax, eax
je 0x425688
push dword [ebp + 0xc]
mov edx, ecx
mov ecx, dword [esp + 0x24]
push dword [ebp + 8]
push ebx
call fcn.00425fb8
jmp 0x42554b
test eax, eax
je 0x4254db
push edx
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0x18]
call fcn.00424400
mov esi, eax
test esi, esi
js 0x42568f
mov ebx, dword [esp + 0x14]
xor edx, edx
cmp dword [ebp + 0x10], 0
je 0x42552f
push edx
mov edx, edi
lea ecx, [esp + 0x28]
call fcn.00424400
mov esi, eax
test esi, esi
js 0x425693
xor eax, eax
lea ecx, [esp + 0x24]
push eax
mov edx, 0x405a58
call fcn.00424400
mov esi, eax
test esi, esi
js 0x425693
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x20]
push edi
call fcn.0042668e
mov esi, eax
test esi, esi
js 0x42552f
xor eax, eax
inc eax
mov dword [esp + 0x18], eax
jmp 0x425533
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x425559
push dword [ebp + 0xc]
mov edx, dword [esp + 0x2c]
push dword [ebp + 8]
mov ecx, dword [esp + 0x28]
push ebx
call fcn.0042617a
mov esi, eax
test esi, esi
js 0x425693
mov eax, dword [esp + 0x18]
cmp dword [ebp + 0x10], 0
je 0x425665
mov ecx, dword [esp + 0x24]
test eax, eax
jne 0x42556d
mov ecx, ebx
xor eax, eax
mov edx, 0x80000000
push eax
push eax
push 0x20000000
push 3
call fcn.00428686
mov dword [esp + 0xc], eax
test eax, eax
je 0x425665
mov edx, edi
mov ecx, eax
call fcn.00428beb
test eax, eax
jne 0x4255b1
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00411710
mov esi, eax
test esi, esi
js 0x425693
push ecx
push ecx
mov ecx, dword [esp + 0x14]
call fcn.0042a8d0
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x4255da
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00411710
mov esi, eax
test esi, esi
js 0x4256a2
push dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x10]
call fcn.00429b5a
push ecx
mov ecx, dword [esp + 0x20]
mov edx, edi
call fcn.0042a84f
test eax, eax
jne 0x42560f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00411710
mov esi, eax
test esi, esi
js 0x425693
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0xc]
call fcn.00429c6f
mov ecx, dword [esp + 0x1c]
call fcn.00428b82
mov ecx, dword [esp + 0xc]
neg eax
sbb eax, eax
not eax
and dword [esp + 0x1c], eax
call fcn.00428b82
neg eax
sbb eax, eax
not eax
and dword [esp + 0xc], eax
cmp dword [esp + 0x18], 0
jne 0x425665
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x425665
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00411710
mov esi, eax
test esi, esi
js 0x425693
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
add dword [esp + 0x2c], 0x28
inc edx
mov dword [esp + 0x34], edx
mov ecx, dword [eax + 0x14]
cmp edx, dword [ecx + 0x20]
jae 0x425693
mov eax, dword [esp + 0x2c]
jmp 0x4253f6
mov esi, 0x80070057
jmp 0x425693
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4256a2
mov ecx, eax
call fcn.00428b82
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4256b1
mov ecx, eax
call fcn.00428b82
or dword [0x4752a0], 0xffffffff
xor ecx, ecx
mov dword [0x475b18], ecx
mov dword [0x475b1c], ecx
mov dword [0x475b28], ecx
mov dword [0x475b2c], ecx
mov dword [0x475b48], ecx
mov dword [0x475b4c], ecx
mov dword [0x475b58], ecx
mov dword [0x475b5c], ecx
mov ecx, dword [0x475b44]
test ecx, ecx
je 0x425700
call fcn.00424c4a
xor eax, eax
mov dword [0x475b44], eax
xor eax, eax
mov edi, 0x475b78
xor ecx, ecx
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [0x475b8c], eax
call fcn.0042a75a
test ebx, ebx
je 0x425725
mov ecx, ebx
call fcn.00424c4a
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x425732
call fcn.00424c4a
mov eax, dword [esp + 0x24]
test eax, eax
je 0x425741
mov ecx, eax
call fcn.00424c4a
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc