Function at 0x437a02
Capabilities:
Delete file
Set file attributes

Disassembly:
push ebp
sub esp, 0xe4
lea ebp, [esp - 4]
mov eax, dword [0x6d15dc]
xor eax, ebp
mov dword [ebp + 0xe4], eax
push 0x1b0
mov eax, 0x5f5df1
call fcn.0057938a
mov eax, dword [ebp + 0xf0]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0xf4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xf8]
push 0x6d8c24
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x48]
push 0x6d90a0
push eax
call fcn.0042cdad
mov esi, 0x6d8b60
push esi
push eax
lea eax, [ebp - 0xf4]
xor ebx, ebx
push eax
mov dword [ebp - 4], ebx
call fcn.0042cdad
push 0x6d8ea8
push eax
lea eax, [ebp - 0x12c]
push eax
mov byte [ebp - 4], 1
call fcn.0042cdad
push 0x6d8fc0
push eax
lea eax, [ebp + 0x74]
push eax
mov byte [ebp - 4], 2
call fcn.0042cdad
add esp, 0x30
xor edi, edi
push ebx
inc edi
push edi
lea ecx, [ebp - 0x12c]
call fcn.00414e93
push ebx
push edi
lea ecx, [ebp - 0xf4]
call fcn.00414e93
push ebx
push edi
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 6
call fcn.00414e93
mov ecx, dword [ebp - 0x14]
push edi
push ebx
lea eax, [ebp + 0x74]
push eax
call fcn.00482680
test al, al
jne 0x437b0d
mov ecx, dword [ebp - 0x14]
lea eax, [ebp + 0x58]
push eax
call fcn.0042cf1d
cmp dword [eax + 0x18], 0x10
mov byte [ebp - 4], 7
jb 0x437af3
mov eax, dword [eax + 4]
jmp 0x437af6
add eax, 4
push eax
push 0x62ed54
push ebx
call fcn.00481a0a
add esp, 0xc
lea ecx, [ebp + 0x58]
jmp 0x438047
push ebx
lea ecx, [ebp + 0x90]
mov dword [ebp + 0xa8], 0xf
call fcn.00415967
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x15]
push eax
lea eax, [ebp + 0x90]
push eax
push esi
mov byte [ebp - 4], 8
call fcn.0048258f
test al, al
je 0x438034
cmp byte [ebp - 0x15], bl
jne 0x437b52
push str.Switch_requires_a_value_____ENTRY
jmp 0x438039
cmp dword [ebp + 0xa8], 0x10
mov eax, dword [ebp + 0x94]
jae 0x437b67
lea eax, [ebp + 0x94]
lea ecx, [ebp - 0x21]
push ecx
lea ecx, [ebp - 0x20]
push ecx
push str._d_c
push eax
call fcn.0057d44a
add esp, 0x10
cmp eax, edi
jne 0x437ff2
mov esi, dword [ebp - 0x20]
cmp esi, edi
jl 0x437ff2
mov ecx, dword [ebp - 0x1c]
call fcn.00428607
cmp esi, eax
jg 0x437ff2
mov ecx, dword [ebp - 0x1c]
call fcn.00428607
cmp eax, edi
jne 0x437bc0
push str.Cannot_delete_the_only_boot_menu_entry
push ebx
call fcn.00481a0a
pop ecx
pop ecx
mov esi, edi
jmp 0x438019
mov ecx, dword [ebp - 0x1c]
dec esi
push esi
call fcn.00428628
cmp byte [eax + 0x55], bl
je 0x437c02
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
dec eax
push eax
call fcn.00428628
add eax, 0x1c
cmp dword [eax + 0x18], 0x10
jb 0x437bea
mov eax, dword [eax + 4]
jmp 0x437bed
add eax, 4
push eax
push str._s_is_protected_system_entry._Delete_
push 4
call fcn.00481a0a
add esp, 0xc
cmp eax, 2
je 0x437bb9
push ebx
lea ecx, [ebp + 0xac]
mov dword [ebp + 0xc4], 0xf
call fcn.00415967
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x48]
push eax
mov byte [ebp - 4], 9
call fcn.0042cf02
mov esi, dword [ebp - 0x2c]
push esi
lea edx, [ebp + 0xac]
mov ecx, eax
mov byte [ebp - 4], 0xa
call fcn.00436430
pop ecx
push ebx
test eax, eax
push edi
lea ecx, [ebp - 0x48]
setne byte [ebp - 0xd]
mov byte [ebp - 4], 9
call fcn.00414e93
cmp byte [ebp - 0xd], bl
je 0x437c69
push ebx
push edi
lea ecx, [ebp + 0xac]
call fcn.00414e93
jmp 0x437bb9
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
dec eax
push eax
call fcn.00428628
push eax
lea ecx, [ebp]
call fcn.0042d38b
lea eax, [ebp - 0x28]
push eax
mov byte [ebp - 4], 0xb
call fcn.0042a2e2
test eax, eax
pop ecx
je 0x437c9b
lea ecx, [ebp]
call fcn.0042bf6c
jmp 0x437c57
mov esi, dword [ebp - 0x2c]
cmp dword [esi + 0x18], 0x10
lea eax, [esi + 4]
mov dword [ebp - 0x14], eax
jb 0x437cac
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
mov eax, dword [ebp - 0x14]
jne 0x437cd3
cmp dword [esi + 0x18], 0x10
jb 0x437cc2
mov eax, dword [eax]
push eax
push str.Cannot_overwrite__s_file
push ebx
call fcn.00481a0a
add esp, 0xc
jmp 0x437c91
cmp dword [esi + 0x18], 0x10
jb 0x437cdb
mov eax, dword [eax]
push edi
push 0x40
push 2
push eax
lea ecx, [ebp - 0x1bc]
call fcn.00436131
cmp dword [ebp + 0xc4], 0x10
mov eax, dword [ebp + 0xb0]
mov byte [ebp - 4], 0xc
jae 0x437d05
lea eax, [ebp + 0xb0]
push edi
push 0x40
push edi
push eax
lea ecx, [ebp - 0xd8]
call fcn.00436131
mov eax, dword [ebp - 0x1bc]
mov eax, dword [eax + 4]
test byte [ebp + eax - 0x1b4], 6
mov byte [ebp - 4], 0xd
je 0x437d69
cmp dword [esi + 0x18], 0x10
mov eax, dword [ebp - 0x14]
jb 0x437d37
mov eax, dword [eax]
push eax
push str.Cannot_overwrite__s_file
push ebx
call fcn.00481a0a
add esp, 0xc
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0xc
call fcn.00432227
lea ecx, [ebp - 0x1bc]
mov byte [ebp - 4], 0xb
call fcn.00432227
jmp 0x437c91
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 4]
mov eax, dword [ebp + eax - 0xd0]
test al, 6
je 0x437d9a
cmp dword [ebp + 0xc4], 0x10
mov eax, dword [ebp + 0xb0]
jae 0x437d92
lea eax, [ebp + 0xb0]
push eax
push str.Cannot_open__s_backup_file
jmp 0x437d3d
mov byte [ebp - 0xd], bl
mov byte [ebp - 0xe], bl
jmp 0x437f6b
cmp eax, ebx
jne 0x437f73
push ebx
lea ecx, [ebp + 0xc8]
mov dword [ebp + 0xe0], 0xf
call fcn.00415967
push 0xa
lea eax, [ebp + 0xc8]
push eax
lea eax, [ebp - 0xd8]
push eax
mov byte [ebp - 4], 0xe
call fcn.00433fcd
mov eax, dword [ebp + 0xcc]
add esp, 0xc
cmp dword [ebp + 0xe0], 0x10
jae 0x437df4
lea eax, [ebp + 0xcc]
push str._operating_systems_
push eax
call fcn.0058372e
test eax, eax
pop ecx
pop ecx
jne 0x437e11
mov byte [ebp - 0xd], 1
mov byte [ebp - 0xe], bl
jmp 0x437f15
cmp dword [ebp + 0xe0], 0x10
mov eax, dword [ebp + 0xcc]
jae 0x437e26
lea eax, [ebp + 0xcc]
push str._boot_loader_
push eax
call fcn.0058372e
test eax, eax
pop ecx
pop ecx
jne 0x437e43
mov byte [ebp - 0xd], bl
mov byte [ebp - 0xe], 1
jmp 0x437f15
cmp byte [ebp - 0xe], bl
je 0x437ee3
push ebx
push 0x6308b4
lea ecx, [ebp + 0xc8]
call fcn.0042a377
test eax, eax
je 0x437e09
push str.default
lea ecx, [ebp + 0x58]
call fcn.0041466e
cmp byte [ebp + 0x54], bl
mov byte [ebp - 4], 0xf
je 0x437ed3
push ebx
lea eax, [ebp + 0x58]
push eax
lea ecx, [ebp + 0xc8]
call fcn.0042a354
test eax, eax
jne 0x437ed3
cmp dword [ebp - 0x20], edi
mov ecx, dword [ebp - 0x1c]
je 0x437e96
push ebx
jmp 0x437e97
push edi
call fcn.00428628
add eax, 0x38
push eax
lea eax, [ebp + 0x58]
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.0042cdad
add esp, 0xc
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp + 0xc8]
mov byte [ebp - 4], 0x10
call fcn.00414d7e
push ebx
push edi
lea ecx, [ebp - 0x110]
call fcn.00414e93
push ebx
push edi
lea ecx, [ebp + 0x58]
mov byte [ebp - 4], 0xe
call fcn.00414e93
jmp 0x437f15
cmp byte [ebp - 0xd], bl
je 0x437f15
push ebx
push 0x6308b4
lea ecx, [ebp + 0xc8]
call fcn.0042a377
test eax, eax
jne 0x437f02
mov byte [ebp - 0xd], bl
jmp 0x437f15
lea eax, [ebp]
push eax
lea ecx, [ebp + 0xc8]
call fcn.004146d2
test eax, eax
je 0x437f4a
lea eax, [ebp + 0xc8]
push eax
lea eax, [ebp - 0x1b4]
push eax
call fcn.00433e64
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 4]
test byte [ebp + eax - 0xd0], 1
pop ecx
pop ecx
jne 0x437f4a
lea eax, [ebp - 0x1b4]
push eax
call fcn.00427f2c
pop ecx
push ebx
push edi
lea ecx, [ebp + 0xc8]
mov byte [ebp - 4], 0xd
call fcn.00414e93
mov eax, dword [ebp - 0xd8]
mov eax, dword [eax + 4]
mov eax, dword [ebp + eax - 0xd0]
test al, 1
je 0x437da5
lea ecx, [ebp - 0x1bc]
call fcn.004313e7
lea ecx, [ebp - 0xd8]
call fcn.004313e7
test byte [ebp - 0x28], 1
je 0x437fa4
cmp dword [esi + 0x18], 0x10
mov eax, dword [ebp - 0x14]
jb 0x437f9a
mov eax, dword [eax]
push dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 0xc
call fcn.00432227
lea ecx, [ebp - 0x1bc]
mov byte [ebp - 4], 0xb
call fcn.00432227
lea ecx, [ebp]
call fcn.0042bf6c
push ebx
push edi
lea ecx, [ebp + 0xac]
call fcn.00414e93
push ebx
push edi
lea ecx, [ebp + 0x90]
call fcn.00414e93
push ebx
push edi
lea ecx, [ebp + 0x74]
call fcn.00414e93
xor eax, eax
jmp 0x43805b
cmp dword [ebp + 0xa8], 0x10
mov eax, dword [ebp + 0x94]
jae 0x438007
lea eax, [ebp + 0x94]
push eax
push str.Invalid_boot_entry_ID_____s
push ebx
call fcn.00481a0a
add esp, 0xc
push 2
pop esi
push ebx
push edi
lea ecx, [ebp + 0x90]
call fcn.00414e93
push ebx
push edi
lea ecx, [ebp + 0x74]
call fcn.00414e93
mov eax, esi
jmp 0x43805b
push str.Required_switch_missing_____ENTRY
push ebx
call fcn.00481a0a
pop ecx
pop ecx
lea ecx, [ebp + 0x90]
push ebx
push edi
call fcn.00414e93
push ebx
push edi
lea ecx, [ebp + 0x74]
call fcn.00414e93
push 2
pop eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0xe4]
xor ecx, ebp
call fcn.0057937b
add ebp, 0xe8
leave
ret