Function at 0x42ce52
Capabilities:
Delete file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
push ebx
push esi
mov ebx, edx
lea eax, [esp + 0xc]
xor edx, edx
xor esi, esi
and dword [esp + 0x14], edx
and dword [esp + 0xc], edx
push edi
mov edi, ecx
mov dword [esp + 0x14], edx
push eax
lea edx, [esp + 0x1c]
mov dword [esp + 0x28], edi
call fcn.0042fd2c
mov edx, dword [ebx + 0xc]
mov eax, dword [edx + 0x10]
mov ecx, eax
and ecx, 0x400
mov dword [esp + 0x1c], ecx
je 0x42cea1
test byte [esp + 0x10], 0x80
je 0x42ceb6
and eax, 0x4000
mov dword [esp + 0x28], eax
je 0x42cebd
test dword [esp + 0x10], 0x20000
jne 0x42cebd
xor eax, eax
jmp 0x42d3c8
test byte [ebx + 0x30], 2
jne 0x42d323
cmp dword [ebx + 0x10], 0xffffffff
je 0x42cefc
lea eax, [esp + 0x30]
mov ecx, edi
push eax
push 1
add edx, 0x14
call fcn.0042fd0f
mov ecx, eax
call fcn.00438962
mov ecx, eax
xor eax, eax
test ecx, ecx
je 0x42cef4
test byte [ecx + 0xf], 0x20
je 0x42cef4
inc eax
test eax, eax
jne 0x42cf65
mov ecx, dword [esp + 0x1c]
test dword [esp + 0x18], 0x1000000
je 0x42cf65
test ecx, ecx
jne 0x42cf65
xor eax, eax
lea edi, [esp + 0x3c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov edi, dword [esp + 0x24]
mov edx, ebx
mov ecx, edi
call fcn.0044309a
mov esi, eax
test esi, esi
jns 0x42cf36
push esi
push 0xca2
mov ecx, 0x4065ec
call fcn.0043f87d
push 0x20
call fcn.00411710
cmp eax, esi
je 0x42cf50
push 0x15
call fcn.00411710
cmp eax, esi
jne 0x42d313
push 5
pop edx
lea ecx, [esp + 0x3c]
call fcn.00431095
test eax, eax
jne 0x42cf17
jmp 0x42d313
mov ecx, edi
call fcn.0042fd0f
and dword [esp + 0x10], esi
cmp dword [ebx + 0x10], 0xffffffff
mov dword [esp + 0x20], eax
je 0x42d150
mov edx, dword [ebx + 0xc]
lea eax, [esp + 0x10]
and dword [esp + 0x20], esi
add edx, 0x14
and dword [esp + 0x24], esi
push eax
push 1
call fcn.0042fd0f
mov ecx, eax
call fcn.00438962
mov dword [esp + 0x30], eax
test eax, eax
jne 0x42cfed
mov edx, dword [ebx + 0xc]
lea eax, [esp + 0x24]
push eax
mov ecx, edi
add edx, 0x14
call fcn.0042fd0f
mov ecx, eax
call fcn.00435ea4
mov dword [esp + 0x20], eax
test eax, eax
jne 0x42cfed
push 0x714
call fcn.00411710
mov esi, eax
test esi, esi
jns 0x42cfed
push esi
push 0xbb1
mov ecx, 0x4065ec
call fcn.0043f87d
jmp 0x42d3c6
test dword [ebx + 0x30], 0x20000000
lea ecx, [ebx + 0x10]
je 0x42d00f
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], 0x42cd80
mov dword [esp + 0x44], 0x42ce10
jmp 0x42d025
mov eax, dword [ecx]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], 0x42a7f0
mov dword [esp + 0x44], fcn.00444bd0
mov eax, dword [ebx + 0xc]
push 2
pop edx
test dword [eax + 0x10], 0x800
je 0x42d0da
mov word [esp + 0xc], dx
lea eax, [esp + 0x2c]
xor edx, edx
push edx
push eax
push edx
push edx
push 2
lea eax, [esp + 0x20]
mov dword [esp + 0x40], edx
push eax
push 0x9c040
push dword [ecx]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x42d0da
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x301
je 0x42d0d8
cmp eax, 0x32
je 0x42d0d8
cmp eax, 1
jne 0x42d09f
push 0xbe8
push 0x4065ec
push eax
call fcn.00411710
push eax
push 0x406610
push dword [ebx + 0x14]
push edi
push 2
call fcn.00434d80
xor esi, esi
jmp 0x42d0e2
push eax
call fcn.00411710
mov esi, eax
test esi, esi
jns 0x42d0bb
push esi
push 0xbf2
mov ecx, 0x4065ec
call fcn.0043f87d
push 0xbf3
push 0x4065ec
push esi
push 0x406674
push dword [ebx + 0x14]
push edi
push 1
call fcn.00434d80
jmp 0x42d0da
xor esi, esi
test esi, esi
js 0x42d3c6
test dword [esp + 0x18], 0x2000
je 0x42d0fd
push dword [ebx + 0x14]
mov edx, dword [ebx + 0xc]
mov ecx, edi
call fcn.004423a0
test eax, eax
jne 0x42d13f
mov eax, dword [esp + 0x30]
test eax, eax
je 0x42d10b
test byte [eax + 0xf], 0x20
jne 0x42d13f
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x3c]
push 1
push ecx
push dword [ebx + 0x14]
mov ecx, edi
push dword [esp + 0x2c]
push dword [esp + 0x34]
push eax
call fcn.00440847
mov esi, eax
test esi, esi
jns 0x42d147
push esi
push 0xc10
mov ecx, 0x4065ec
call fcn.0043f87d
test esi, esi
js 0x42d3c6
or dword [ebx + 0x30], 2
jmp 0x42d313
cmp dword [esp + 0x1c], esi
jne 0x42d15c
cmp dword [esp + 0x28], esi
je 0x42d1a2
call fcn.004368c2
mov dword [esp + 0x14], eax
test eax, eax
jne 0x42d1ad
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00411710
test eax, eax
jns 0x42d189
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00411710
mov esi, eax
jmp 0x42d18e
mov esi, 0x80004005
test esi, esi
jns 0x42d1a2
push esi
push 0xc35
mov ecx, 0x4065ec
call fcn.0043f87d
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax + 8]
jmp 0x42d296
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0xc]
add eax, 0x14
mov ecx, eax
mov dword [esp + 0x30], eax
call fcn.0042f3da
test eax, eax
jne 0x42d201
lea eax, [esp + 0x10]
mov ecx, edi
push eax
push 1
call fcn.0042fd0f
mov edx, dword [esp + 0x38]
mov ecx, eax
call fcn.00438962
mov dword [esp + 0x24], eax
test eax, eax
jne 0x42d201
push 0x714
call fcn.00411710
mov esi, eax
test esi, esi
jns 0x42d201
push esi
push 0xc4b
jmp 0x42d275
and dword [esp + 0x30], 0
and dword [esp + 0x34], 0
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x42d220
call fcn.0042a8ae
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x14]
lea eax, [ebx + 0x10]
push ecx
push eax
neg ecx
lea eax, [esp + 0x38]
sbb ecx, ecx
and ecx, eax
push ecx
push ecx
push 0x4a200100
push edx
mov ecx, edi
call fcn.00432870
test eax, eax
jne 0x42d27f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00411710
test eax, eax
jns 0x42d266
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00411710
mov esi, eax
jmp 0x42d26b
mov esi, 0x80004005
test esi, esi
jns 0x42d27f
push esi
push 0xc68
mov ecx, 0x4065ec
call fcn.0043f87d
mov eax, dword [esp + 0x10]
test eax, eax
je 0x42d294
cmp dword [esp + 0x20], eax
je 0x42d294
test edi, edi
je 0x42d294
mov dword [edi + 4], eax
xor ecx, ecx
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x42d2a1
mov eax, dword [ebx + 0x14]
push 1
lea edx, [ebx + 0x10]
push edx
mov edx, dword [ebx + 0xc]
push ecx
push eax
add edx, 0x14
mov ecx, edi
call fcn.004406a1
test eax, eax
je 0x42d2c0
or dword [ebx + 0x30], 3
jmp 0x42d2f9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00411710
test eax, eax
jns 0x42d2e0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00411710
mov esi, eax
jmp 0x42d2e5
mov esi, 0x80004005
test esi, esi
jns 0x42d2f9
push esi
push 0xc8b
mov ecx, 0x4065ec
call fcn.0043f87d
mov ecx, edi
call fcn.0042fd0f
mov ecx, dword [esp + 0x20]
cmp ecx, eax
je 0x42d313
test edi, edi
je 0x42d313
test ecx, ecx
je 0x42d313
mov dword [edi + 4], ecx
test esi, esi
js 0x42d3a7
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
cmp dword [ebp + 8], 0
je 0x42d3a7
test eax, eax
je 0x42d34b
push dword [ebx + 0xc]
lea edx, [ebx + 0x10]
mov ecx, edi
push dword [ebx + 0x14]
call fcn.00443cd3
mov esi, eax
test esi, esi
jns 0x42d379
push esi
push 0xcb6
jmp 0x42d36b
test ecx, ecx
je 0x42d375
push dword [ebx + 0xc]
lea edx, [ebx + 0x10]
mov ecx, edi
push dword [ebx + 0x14]
call fcn.0044371d
mov esi, eax
test esi, esi
jns 0x42d379
push esi
push 0xcc2
mov ecx, 0x4065ec
call fcn.0043f87d
test esi, esi
js 0x42d3a7
mov ecx, dword [ebx + 0xc]
cmp dword [ecx + 0x4c], 0
je 0x42d3a7
mov edx, dword [ebx + 0x14]
lea eax, [ebx + 0x10]
push eax
push ecx
mov ecx, edi
call fcn.0044353c
mov esi, eax
test esi, esi
jns 0x42d3a7
push esi
push 0xcd0
mov ecx, 0x4065ec
call fcn.0043f87d
mov ebx, dword [esp + 0x14]
test ebx, ebx
je 0x42d3c6
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push ebx
push 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4