Function at 0x428800
Capabilities:
Delete file
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5281b5
mov eax, dword fs:[0]
push eax
sub esp, 0x9c
mov eax, dword [0x57a0ec]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 4], 0
lea edx, [ebp + 8]
cmp dword [ebp + 0x1c], 8
mov dword [ebp - 0x48], 7
cmovae edx, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x4c], 0
mov word [ebp - 0x5c], ax
cmp word [edx], ax
jne 0x428860
xor ecx, ecx
jmp 0x428874
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x428865
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x5c]
call fcn.00409790
xor eax, eax
mov byte [ebp - 4], 1
push 0xffffffffffffffff
push eax
mov word [ebp - 0x7c], ax
lea ecx, [ebp - 0x7c]
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x68], 7
push eax
mov dword [ebp - 0x6c], 0
call fcn.00409890
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x44]
call fcn.00425820
mov eax, dword [ebp - 0x68]
cmp eax, 8
jb 0x4288ca
inc eax
lea ecx, [ebp - 0x7c]
push eax
push dword [ebp - 0x7c]
call fcn.0040a700
mov edi, dword [ebp - 0x40]
xorps xmm0, xmm0
mov edx, dword [ebp - 0x44]
mov ebx, 1
movq qword [ebp - 0x24], xmm0
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edi
test edi, edi
je 0x4288f0
lea ecx, [edi + 4]
mov eax, ebx
lock xadd dword [ecx], eax
lea ecx, [ebp - 0x34]
movq qword [ebp - 0x34], xmm0
call fcn.00425980
mov byte [ebp - 4], 6
mov esi, dword [ebp - 0x34]
cmp edx, esi
sete al
test al, al
jne 0x42899b
test edx, edx
sete al
test al, al
je 0x42892a
test esi, esi
setne al
test al, al
je 0x42892a
mov eax, dword [esi]
cmp eax, dword [esi + 4]
je 0x42899b
test esi, esi
sete al
test al, al
je 0x428943
test edx, edx
setne al
test al, al
je 0x428943
mov eax, dword [edx]
cmp eax, dword [edx + 4]
je 0x42899b
mov eax, dword [edx + 4]
push 0
mov edi, dword [eax - 8]
lea eax, [ebp - 0x2c]
push eax
mov ecx, edi
call fcn.00495e70
cmp dword [ebp - 0x2c], 3
jne 0x428988
sub esp, 0x18
xor eax, eax
mov ecx, esp
mov dword [ebp - 0x1c], ecx
push 0xffffffffffffffff
push eax
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push edi
mov word [ecx], ax
call fcn.00409890
call fcn.00428800
add esp, 0x18
lea ecx, [ebp - 0x24]
call fcn.00425950
mov edi, dword [ebp - 0x20]
mov edx, dword [ebp - 0x24]
jmp 0x428904
mov byte [ebp - 4], 7
or edx, 0xffffffff
mov esi, dword [ebp - 0x30]
test esi, esi
je 0x4289e8
lea ecx, [esi + 4]
mov eax, edx
lock xadd dword [ecx], eax
cmp eax, 1
jne 0x4289e8
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
or edx, 0xffffffff
lea eax, [esi + 8]
mov ecx, edx
lock xadd dword [eax], ecx
cmp ecx, 1
jne 0x4289e8
mov edx, dword [esi]
mov ecx, esi
mov eax, dword [edx + 8]
cmp eax, method.boost::detail::sp_counted_base.virtual_8
jne 0x4289e3
push 1
call dword [edx]
jmp 0x4289e5
call eax
or edx, 0xffffffff
mov byte [ebp - 4], 8
test edi, edi
je 0x428a2a
lea eax, [edi + 4]
mov ecx, edx
lock xadd dword [eax], ecx
cmp ecx, 1
jne 0x428a2a
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
lea eax, [edi + 8]
or edx, 0xffffffff
lock xadd dword [eax], edx
cmp edx, 1
jne 0x428a2a
mov edx, dword [edi]
mov ecx, edi
mov eax, dword [edx + 8]
cmp eax, method.boost::detail::sp_counted_base.virtual_8
jne 0x428a28
push 1
call dword [edx]
jmp 0x428a2a
call eax
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 1
call fcn.00403b60
xor eax, eax
mov dword [ebp - 0x68], 7
push 0xffffffffffffffff
push eax
mov word [ebp - 0x7c], ax
lea ecx, [ebp - 0x7c]
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x6c], 0
push eax
call fcn.00409890
lea eax, [ebp - 0x7c]
mov byte [ebp - 4], 9
push eax
lea ecx, [ebp - 0x2c]
call fcn.00425820
mov eax, dword [ebp - 0x68]
cmp eax, 8
jb 0x428a7e
inc eax
lea ecx, [ebp - 0x7c]
push eax
push dword [ebp - 0x7c]
call fcn.0040a700
mov eax, dword [ebp - 0x28]
xorps xmm0, xmm0
mov edx, dword [ebp - 0x2c]
movq qword [ebp - 0x34], xmm0
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x30], eax
test eax, eax
je 0x428a9d
add eax, 4
lock xadd dword [eax], ebx
lea ecx, [ebp - 0x64]
movq qword [ebp - 0x64], xmm0
call fcn.00425980
mov byte [ebp - 4], 0xd
nop
mov ecx, dword [ebp - 0x64]
cmp edx, ecx
sete al
test al, al
jne 0x428ef3
test edx, edx
sete al
test al, al
je 0x428add
test ecx, ecx
setne al
test al, al
je 0x428add
mov eax, dword [ecx]
cmp eax, dword [ecx + 4]
je 0x428ef3
test ecx, ecx
sete al
test al, al
je 0x428afa
test edx, edx
setne al
test al, al
je 0x428afa
mov eax, dword [edx]
cmp eax, dword [edx + 4]
je 0x428ef3
mov eax, dword [edx + 4]
push 0
mov ebx, dword [eax - 8]
lea eax, [ebp - 0xa8]
push eax
mov ecx, ebx
mov dword [ebp - 0x40], ebx
call fcn.00495e70
cmp dword [ebp - 0xa8], 2
jne 0x428edd
cmp dword [ebx + 0x14], 8
jb 0x428b2a
mov eax, dword [ebx]
jmp 0x428b2c
mov eax, ebx
push 4
push 0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [0x583e24]
xorps xmm0, xmm0
movq qword [ebp - 0x3c], xmm0
test eax, eax
je 0x428d0a
test ecx, ecx
jne 0x428b5c
call fcn.004134c0
mov ecx, dword [0x583e24]
lea eax, [ebp - 0x3c]
push eax
call fcn.004144b0
mov ebx, dword [ebp - 0x3c]
test ebx, ebx
setne al
test al, al
je 0x428eb0
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov ecx, ebx
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x18], 0
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x20], 1
push eax
call fcn.00412a70
mov byte [ebp - 4], 0x10
mov eax, dword [ebp - 0x18]
test eax, eax
sete cl
test cl, cl
jne 0x428ce4
lea eax, [ebp - 0x18]
mov edx, ebx
push eax
lea ecx, [ebp - 0x88]
call fcn.00412ab0
add esp, 4
mov byte [ebp - 4], 0x11
mov esi, dword [eax + 4]
add esi, 8
push 0x5532c4
mov ecx, esi
call fcn.004109d0
push str.installer
mov ecx, esi
call fcn.004109d0
push 0x5532d4
mov ecx, esi
call fcn.004109d0
push 0x5532c4
mov ecx, esi
call fcn.004109d0
push str.DeleteTempOnNextReboot
mov ecx, esi
call fcn.004109d0
push 0x5532d4
mov ecx, esi
call fcn.004109d0
push 0x5532c4
mov ecx, esi
call fcn.004109d0
push 0xdf
lea ecx, [esi + 0x68]
call fcn.00410dc0
push 0x5532d8
mov ecx, esi
call fcn.004109d0
push str.Set_Delete_File_On_Next_Reboot_Done:
mov ecx, esi
call fcn.004109d0
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0xa0]
push eax
call fcn.0040f8f0
push 0x22
push 0x26
mov edx, eax
mov byte [ebp - 4], 0x12
lea ecx, [esi + 0x68]
call fcn.00413860
mov eax, dword [ebp - 0x8c]
add esp, 8
cmp eax, 8
jb 0x428c89
inc eax
lea ecx, [ebp - 0xa0]
push eax
push dword [ebp - 0xa0]
call fcn.0040a700
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0x88], 0
je 0x428ba0
mov esi, dword [ebp - 0x84]
mov dword [ebp - 0x1c], esi
mov byte [ebp - 4], 0x13
call fcn.0049b870
cmp dword [ebp - 0x80], eax
jb 0x428cd2
mov edi, dword [ebp - 0x84]
lea ecx, [edi + 0x70]
call fcn.004118f0
mov eax, dword [ebp - 0x88]
push dword [edi + 0xc0]
mov ecx, dword [eax]
call fcn.0049ab20
push esi
mov byte [ebp - 4], 0x10
call fcn.0049cd70
add esp, 4
jmp 0x428ba0
test eax, eax
je 0x428cf8
push eax
call fcn.0049a5e0
add esp, 4
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 0xe
jmp 0x428eb0
test ecx, ecx
jne 0x428d19
call fcn.004134c0
mov ecx, dword [0x583e24]
lea eax, [ebp - 0x3c]
push eax
call fcn.004144b0
mov ebx, dword [ebp - 0x3c]
test ebx, ebx
setne al
test al, al
je 0x428eb0
mov byte [ebp - 4], 0x16
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov ecx, ebx
lea eax, [ebp - 0x20]
mov dword [ebp - 0x18], 0
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], 1
push eax
call fcn.00412a70
mov byte [ebp - 4], 0x17
nop dword [eax]
mov eax, dword [ebp - 0x18]
test eax, eax
sete cl
test cl, cl
jne 0x428e95
lea eax, [ebp - 0x18]
mov edx, ebx
push eax
lea ecx, [ebp - 0x70]
call fcn.00412ab0
add esp, 4
mov byte [ebp - 4], 0x18
mov esi, dword [eax + 4]
add esi, 8
push 0x5532c4
mov ecx, esi
call fcn.004109d0
push str.installer
mov ecx, esi
call fcn.004109d0
push 0x5532d4
mov ecx, esi
call fcn.004109d0
push 0x5532c4
mov ecx, esi
call fcn.004109d0
push str.DeleteTempOnNextReboot
mov ecx, esi
call fcn.004109d0
push 0x5532d4
mov ecx, esi
call fcn.004109d0
push 0x5532c4
mov ecx, esi
call fcn.004109d0
push 0xe3
lea ecx, [esi + 0x68]
call fcn.00410dc0
push 0x5532d8
mov ecx, esi
call fcn.004109d0
push str.Set_Delete_File_On_Next_Reboot_Failed:
mov ecx, esi
call fcn.004109d0
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0xa0]
push eax
call fcn.0040f8f0
push 0x22
push 0x26
mov edx, eax
mov byte [ebp - 4], 0x19
lea ecx, [esi + 0x68]
call fcn.00413860
mov eax, dword [ebp - 0x8c]
add esp, 8
cmp eax, 8
jb 0x428e46
inc eax
lea ecx, [ebp - 0xa0]
push eax
push dword [ebp - 0xa0]
call fcn.0040a700
mov byte [ebp - 4], 0x17
cmp dword [ebp - 0x70], 0
je 0x428d60
mov esi, dword [ebp - 0x6c]
mov dword [ebp - 0x20], esi
mov byte [ebp - 4], 0x1a
call fcn.0049b870
cmp dword [ebp - 0x68], eax
jb 0x428e83
mov edi, dword [ebp - 0x6c]
lea ecx, [edi + 0x70]
call fcn.004118f0
mov eax, dword [ebp - 0x70]
push dword [edi + 0xc0]
mov ecx, dword [eax]
call fcn.0049ab20
push esi
mov byte [ebp - 4], 0x17
call fcn.0049cd70
add esp, 4
jmp 0x428d60
test eax, eax
je 0x428ea9
push eax
call fcn.0049a5e0
add esp, 4
mov dword [ebp - 0x18], 0
mov dword [ebp - 4], 0x15
mov byte [ebp - 4], 0xd
or ebx, 0xffffffff
mov esi, dword [ebp - 0x38]
test esi, esi
je 0x428edd
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x428edd
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, ebx
lock xadd dword [esi + 8], eax
jne 0x428edd
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
lea ecx, [ebp - 0x34]
call fcn.00425950
mov edx, dword [ebp - 0x34]
jmp 0x428ab0
lea ecx, [ebp - 0x64]
call fcn.00403b60
lea ecx, [ebp - 0x34]
call fcn.00403b60
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 1
call fcn.00403b60
cmp dword [ebp - 0x48], 8
lea eax, [ebp - 0x5c]
push 4
cmovae eax, dword [ebp - 0x5c]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ecx, dword [0x583e24]
xorps xmm0, xmm0
movq qword [ebp - 0x2c], xmm0
test eax, eax
je 0x429124
test ecx, ecx
jne 0x428f4a
call fcn.004134c0
mov ecx, dword [0x583e24]
lea eax, [ebp - 0x2c]
push eax
call fcn.004144b0
mov byte [ebp - 4], 0x1c
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
setne al
test al, al
je 0x42909c
mov byte [ebp - 4], 0x1d
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov ecx, ebx
lea eax, [ebp - 0x20]
mov dword [ebp - 0x18], 0
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], 1
push eax
call fcn.00412a70
mov byte [ebp - 4], 0x1e
mov eax, dword [ebp - 0x18]
test eax, eax
sete cl
test cl, cl
jne 0x42908f
lea eax, [ebp - 0x18]
mov edx, ebx
push eax
lea ecx, [ebp - 0x70]
call fcn.00412ab0
add esp, 4
mov byte [ebp - 4], 0x1f
mov esi, dword [eax + 4]
add esi, 8
push 0x5532c4
mov ecx, esi
call fcn.004109d0
push str.installer
mov ecx, esi
call fcn.004109d0
push 0x5532d4
mov ecx, esi
call fcn.004109d0
push 0x5532c4
mov ecx, esi
call fcn.004109d0
push str.DeleteTempOnNextReboot
mov ecx, esi
call fcn.004109d0
push 0x5532d4
mov ecx, esi
call fcn.004109d0
push 0x5532c4
mov ecx, esi
call fcn.004109d0
push 0xee
lea ecx, [esi + 0x68]
call fcn.00410dc0
push 0x5532d8
mov ecx, esi
call fcn.004109d0
push str.Set_Delete_Folder_On_Next_Reboot_Done:
mov ecx, esi
call fcn.004109d0
lea edx, [ebp - 0x5c]
mov ecx, esi
call fcn.004356f0
mov byte [ebp - 4], 0x1e
cmp dword [ebp - 0x70], 0
je 0x428f92
mov esi, dword [ebp - 0x6c]
mov dword [ebp - 0x20], esi
mov byte [ebp - 4], 0x20
call fcn.0049b870
cmp dword [ebp - 0x68], eax
jb 0x42907d
mov edi, dword [ebp - 0x6c]
lea ecx, [edi + 0x70]
call fcn.004118f0
mov eax, dword [ebp - 0x70]
push dword [edi + 0xc0]
mov ecx, dword [eax]
call fcn.0049ab20
push esi
mov byte [ebp - 4], 0x1e
call fcn.0049cd70
add esp, 4
jmp 0x428f92
test eax, eax
je 0x42909c
push eax
call fcn.0049a5e0
add esp, 4
mov esi, dword [ebp - 0x28]
or ebx, 0xffffffff
test esi, esi
je 0x4290c4
mov eax, ebx
lock xadd dword [esi + 4], eax
jne 0x4290c4
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], ebx
dec ebx
jne 0x4290c4
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [ebp - 0x48]
cmp eax, 8
jb 0x4290d9
inc eax
lea ecx, [ebp - 0x5c]
push eax
push dword [ebp - 0x5c]
call fcn.0040a700
xor eax, eax
mov dword [ebp - 0x48], 7
mov word [ebp - 0x5c], ax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x4c], 0
cmp eax, 8
jb 0x429102
inc eax
lea ecx, [ebp + 8]
push eax
push dword [ebp + 8]
call fcn.0040a700
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004927a4
mov esp, ebp
pop ebp
ret
test ecx, ecx
jne 0x429133
call fcn.004134c0
mov ecx, dword [0x583e24]
lea eax, [ebp - 0x2c]
push eax
call fcn.004144b0
mov byte [ebp - 4], 0x22
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
setne al
test al, al
je 0x42909c
mov byte [ebp - 4], 0x23
lea eax, [ebp - 0x1c]
mov dword [ebp - 0x20], eax
mov ecx, ebx
lea eax, [ebp - 0x20]
mov dword [ebp - 0x18], 0
push eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x1c], 1
push eax
call fcn.00412a70
mov byte [ebp - 4], 0x24
nop dword [eax + eax]
mov eax, dword [ebp - 0x18]
test eax, eax
sete cl
test cl, cl
jne 0x42908f
lea eax, [ebp - 0x18]
mov edx, ebx
push eax
lea ecx, [ebp - 0x70]
call fcn.00412ab0
add esp, 4
mov byte [ebp - 4], 0x25
mov esi, dword [eax + 4]
add esi, 8
push 0x5532c4
mov ecx, esi
call fcn.004109d0
push str.installer
mov ecx, esi
call fcn.004109d0
push 0x5532d4
mov ecx, esi
call fcn.004109d0
push 0x5532c4
mov ecx, esi
call fcn.004109d0
push str.DeleteTempOnNextReboot
mov ecx, esi
call fcn.004109d0
push 0x5532d4
mov ecx, esi
call fcn.004109d0
push 0x5532c4
mov ecx, esi
call fcn.004109d0
push 0xf2
lea ecx, [esi + 0x68]
call fcn.00410dc0
push 0x5532d8
mov ecx, esi
call fcn.004109d0
push str.Set_Delete_Folder_On_Next_Reboot_Failed:
mov ecx, esi
call fcn.004109d0
lea edx, [ebp - 0x5c]
mov ecx, esi
call fcn.004356f0
mov byte [ebp - 4], 0x24
cmp dword [ebp - 0x70], 0
je 0x429180
mov esi, dword [ebp - 0x6c]
mov dword [ebp - 0x20], esi
mov byte [ebp - 4], 0x26
call fcn.0049b870
cmp dword [ebp - 0x68], eax
jb 0x42926b
mov edi, dword [ebp - 0x6c]
lea ecx, [edi + 0x70]
call fcn.004118f0
mov eax, dword [ebp - 0x70]
push dword [edi + 0xc0]
mov ecx, dword [eax]
call fcn.0049ab20
push esi
mov byte [ebp - 4], 0x24
call fcn.0049cd70
add esp, 4
jmp 0x429180