Function at 0x44aad0
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd8
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x44], ecx
push ebx
mov esi, edx
call dword [sym.imp.ole32.dll_CoInitialize]
push esi
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x48], eax
call fcn.0043b487
mov edi, dword [ebp - 0x18]
lea ecx, [ebp - 0x18]
mov eax, dword [edi - 0xc]
dec eax
push eax
call fcn.0043a8ec
push 0x5c
pop ecx
cmp ax, cx
je 0x44ab1a
push ecx
lea ecx, [ebp - 0x18]
call fcn.0043b93f
mov edi, dword [ebp - 0x18]
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], ebx
push eax
push 0x49d3a0
push 1
push ebx
push 0x49da2c
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov esi, eax
test esi, esi
js 0x44b055
mov eax, dword [ebp + 8]
test eax, eax
jne 0x44ab4a
mov eax, str.ESD_ISO
mov esi, dword [ebp - 0x14]
lea ecx, [ebp - 0xc]
push eax
mov ebx, dword [esi]
call fcn.00436e1f
push dword [eax]
push esi
call dword [ebx + 0x3c]
push dword [ebp - 0xc]
mov esi, eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
test esi, esi
js 0x44b055
xor ebx, ebx
mov dword [ebp - 0x60], 6
push str.bootetfsboot.com
lea edx, [ebp - 0x18]
mov dword [ebp - 0x5c], 0x230540
lea ecx, [ebp - 0xc]
mov dword [ebp - 0x58], 8
mov dword [ebp - 0x54], 0x3fb000
mov dword [ebp - 0x50], 0xe
mov dword [ebp - 0x4c], 0x3b9b000
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x10], ebx
call fcn.0043ab55
pop ecx
lea ecx, [ebp - 0x10]
push ecx
push 0x20
push dword [eax]
call dword [sym.imp.SHLWAPI.dll_SHCreateStreamOnFileW]
mov ecx, dword [ebp - 0xc]
lea ecx, [ecx - 0x10]
call fcn.0043c924
cmp dword [ebp - 0x10], ebx
je 0x44ac7d
lea eax, [ebp - 8]
mov dword [ebp - 8], ebx
push eax
push 0x49cf50
push 1
push ebx
push 0x49e468
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x44ac63
mov esi, dword [ebp - 8]
lea ecx, [ebp - 0xc]
push 0x48de90
mov ebx, dword [esi]
call fcn.00436e1f
push dword [eax]
push esi
call dword [ebx + 0x24]
push dword [ebp - 0xc]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 8]
xor ebx, ebx
push ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 8]
push ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebp - 8]
push dword [ebp - 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp - 0x1c]
je 0x44ac56
mov dword [eax], ecx
add dword [ebp - 0x20], 4
jmp 0x44ac63
lea ecx, [ebp - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x24]
call fcn.00432d85
mov eax, dword [ebp - 8]
test eax, eax
je 0x44ac70
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x44ac7d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push str.efimicrosoft_bootefisys.bin
lea edx, [ebp - 0x18]
mov dword [ebp - 0x10], ebx
lea ecx, [ebp - 0xc]
call fcn.0043ab55
pop ecx
lea ecx, [ebp - 0x10]
push ecx
push 0x20
push dword [eax]
call dword [sym.imp.SHLWAPI.dll_SHCreateStreamOnFileW]
mov ecx, dword [ebp - 0xc]
lea ecx, [ecx - 0x10]
call fcn.0043c924
cmp dword [ebp - 0x10], 0
je 0x44ad59
lea eax, [ebp - 8]
mov dword [ebp - 8], ebx
push eax
push 0x49cf50
push 1
push ebx
push 0x49e468
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x44ad3f
mov esi, dword [ebp - 8]
lea ecx, [ebp - 0xc]
push 0x48d878
mov ebx, dword [esi]
call fcn.00436e1f
push dword [eax]
push esi
call dword [ebx + 0x24]
push dword [ebp - 0xc]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp - 8]
push 0xef
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 8]
xor ebx, ebx
push ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebp - 8]
push dword [ebp - 0x10]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0x20]
mov dword [ebp - 8], ebx
mov dword [ebp - 0xc], ecx
cmp eax, dword [ebp - 0x1c]
je 0x44ad32
mov dword [eax], ecx
add dword [ebp - 0x20], 4
jmp 0x44ad3f
lea ecx, [ebp - 0xc]
push ecx
push eax
lea ecx, [ebp - 0x24]
call fcn.00432d85
mov eax, dword [ebp - 8]
test eax, eax
je 0x44ad4c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x44ad59
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [ebp - 0x20]
sub esi, dword [ebp - 0x24]
sar esi, 2
mov dword [ebp - 0x2c], ebx
test esi, esi
je 0x44ada4
push esi
push ebx
push 0xc
call dword [sym.imp.OLEAUT32.dll_SafeArrayCopyData]
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x2c], eax
push ecx
push eax
call dword [sym.imp.OLEAUT32.dll_SafeArrayUnaccessData]
mov edx, ebx
mov eax, dword [ebp - 0x28]
push 9
pop ecx
mov word [ebx + eax], cx
lea ebx, [ebx + 0x10]
mov eax, dword [ebp - 0x24]
mov ecx, dword [eax + edx*4]
inc edx
mov eax, dword [ebp - 0x28]
mov dword [ebx + eax - 8], ecx
cmp edx, esi
jne 0x44ad83
xor ebx, ebx
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x8c], 0x49d530
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x84], ecx
push eax
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0x68], eax
call fcn.0043aa99
lea ecx, [ebp - 0x8c]
call fcn.0043aa7b
cmp dword [ebp - 0x2c], 0
je 0x44adfe
push dword [ebp - 0x2c]
call dword [sym.imp.OLEAUT32.dll_SafeArrayGetElement]
mov eax, dword [ebp - 0x14]
push dword [ebp - 0x2c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xe8]
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0x3c]
mov dword [ebp - 0x3c], ebx
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov esi, eax
test esi, esi
js 0x44b020
push edi
lea ecx, [ebp - 0xc]
call fcn.00436e1f
lea ebx, [ebp - 0x60]
mov eax, dword [ebp - 0x14]
push dword [ebx]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x8c]
mov eax, dword [ebp - 0x14]
push dword [ebx + 4]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x3c]
push 0
push dword [ebp - 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x64]
mov esi, eax
test esi, esi
jns 0x44ae72
cmp esi, 0xc0aab120
jne 0x44b015
add ebx, 8
lea eax, [ebp - 0x48]
cmp ebx, eax
jne 0x44ae24
mov esi, 0x80004001
jmp 0x44b015
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0x28]
xor ebx, ebx
mov dword [ebp - 0x28], ebx
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x9c]
mov esi, eax
test esi, esi
js 0x44b008
mov eax, dword [ebp - 0x28]
lea edx, [ebp - 0x10]
mov dword [ebp - 0x10], ebx
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov esi, eax
test esi, esi
js 0x44affb
lea eax, [ebp - 0x30]
mov dword [ebp - 0x30], ebx
push eax
push ebx
push 1
push 0x80
push 0x1002
push dword [ebp - 0x44]
call dword [sym.imp.SHLWAPI.dll_SHCreateStreamOnFileEx]
mov esi, eax
test esi, esi
jns 0x44aee4
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x44affb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x44affb
mov eax, dword [ebp - 0x10]
lea edx, [ebp - 0xac]
push ebx
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x30]
call fcn.0043c5cd
push eax
lea ecx, [ebp - 0x40]
call fcn.0043ac50
push 0x100000
lea ecx, [ebp - 0x40]
call fcn.0043aa22
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x38], eax
xor eax, eax
and dword [ebp - 8], eax
mov dword [ebp - 0x34], eax
lea eax, [ebp - 8]
mov edx, dword [ecx]
push eax
push 0x100000
push dword [ebp - 0x38]
push ecx
call dword [edx + 0xc]
jmp 0x44afc1
mov edx, dword [ebp - 8]
test edx, edx
je 0x44afcb
mov eax, dword [ebp - 0x30]
lea edi, [ebp - 8]
push edi
push edx
push dword [ebp - 0x38]
mov ecx, dword [eax]
add ebx, edx
push eax
adc dword [ebp - 0x34], 0
call dword [ecx + 0x10]
mov edi, dword [ebp - 0x18]
test eax, eax
js 0x44afc9
push dword [ebp + 0x10]
mov eax, dword [ebp - 0x34]
push 0
push 0x64
pop ecx
mul ecx
push 0x64
pop edx
push dword [ebp - 0xa0]
mov ecx, eax
mov eax, ebx
push dword [ebp - 0xa4]
mul edx
add ecx, edx
push ecx
push eax
call fcn.00484910
push eax
push 0x9478
call fcn.0041a52d
push dword [ebp + 0x10]
push 0
push 0
push 0x948e
call fcn.0041a52d
test eax, eax
jne 0x44aff2
and dword [ebp - 8], eax
lea edx, [ebp - 8]
mov eax, dword [ebp - 0x10]
push edx
push 0x100000
push dword [ebp - 0x38]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
test eax, eax
jns 0x44af35
mov esi, eax
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.0043c924
mov eax, dword [ebp - 0x30]
test eax, eax
je 0x44afe3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
test esi, esi
jns 0x44aff9
push dword [ebp - 0x44]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x44affb
mov esi, 0x800704c7
jmp 0x44afcb
xor esi, esi
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x44b008
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x28]
test eax, eax
je 0x44b015
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [ebp - 0xc]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
xor ebx, ebx
mov eax, dword [ebp - 0x3c]
test eax, eax
je 0x44b02d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0xd4]
call fcn.0043aa5e
mov ecx, dword [ebp - 0x24]
test ecx, ecx
je 0x44b055
mov edx, dword [ebp - 0x1c]
sub edx, ecx
and edx, 0xfffffffc
call fcn.0043a508
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x44b062
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [edi - 0x10]
call fcn.0043c924
cmp dword [ebp - 0x48], 0
jl 0x44b076
call dword [sym.imp.ole32.dll_CoUninitialize]
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret