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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x45ff3b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
mov eax, 0x1f30
call fcn.004116f0
push ebx
push ebp
push esi
xor esi, esi
cmp dword [0x4cd4fc], 0xac
push edi
jne 0x403661
push esi
lea eax, [esp + 0xb44]
push eax
push esi
push 0x402df0
push esi
call dword [sym.imp.KERNEL32.dll_FoldStringW]
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push esi
push esi
push esi
call dword [sym.imp.KERNEL32.dll_EnumTimeFormatsA]
mov dword [esp + 0x104], 0xf
mov dword [esp + 0x100], esi
mov byte [esp + 0xf0], 0
push esi
mov dword [esp + 0x1f80], esi
call fcn.004041a2
add esp, 4
push esi
push esi
call fcn.00404332
add esp, 8
lea ecx, [esp + 0x4c]
call fcn.004041d6
lea ecx, [esp + 0x4c]
call fcn.004042b4
push 1
push 0x462540
lea ecx, [esp + 0x54]
call fcn.0040423a
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4c], 0x402ebc
call fcn.004042b4
push esi
call fcn.00404459
push ecx
mov eax, esp
mov dword [eax], esi
mov dword [eax + 4], esi
call fcn.004044c0
fstp st(0)
mov eax, esp
mov dword [eax], esi
mov dword [eax + 4], esi
sub esp, 8
mov eax, esp
mov dword [eax], esi
mov dword [eax + 4], esi
call fcn.00404300
fstp st(0)
add esp, 0x10
push esi
call fcn.0040481a
mov edi, dword [sym.imp.GDI32.dll_GetCharWidthI]
cmp esi, 0xd29a
jge 0x40367e
push 0
lea ecx, [esp + 0x3c]
push ecx
push 0
push 0
push 0
call edi
inc esi
cmp esi, 0x140e1
jl 0x403667
add dword [0x4cd4fc], 0x11b1b
call fcn.00403480
call fcn.004034a0
xor esi, esi
cmp dword [0x4cd4fc], esi
jbe 0x403737
mov edi, dword [sym.imp.KERNEL32.dll_FindCloseChangeNotification]
mov ebx, dword [sym.imp.KERNEL32.dll_ConvertFiberToThread]
mov ebp, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
jmp 0x4036c0
mov edx, dword [0x4cde9c]
mov al, byte [edx + esi + 0x11b1b]
mov ecx, dword [0x4ca404]
mov byte [ecx + esi], al
cmp dword [0x4cd4fc], 0xa8
jne 0x40372e
push 0
call edi
call ebx
push 0
call ebp
push 0
push 0
lea edx, [esp + 0x48]
push edx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_BackupSeek]
xor eax, eax
xor ecx, ecx
mov word [esp + 0x3a], cx
lea edx, [esp + 0x44]
push edx
mov word [esp + 0x3c], ax
mov eax, dword [esp + 0x3c]
push eax
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0xd0]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_ScrollConsoleScreenBufferA]
inc esi
cmp esi, dword [0x4cd4fc]
jb 0x4036c0
mov esi, dword [esp + 0x40]
mov edi, dword [sym.imp.KERNEL32.dll_GetConsoleWindow]
mov ebp, dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
mov ebx, dword [sym.imp.KERNEL32.dll_DebugBreak]
xor eax, eax
mov dword [esp + 0x3c], eax
mov ecx, dword [0x4cd4fc]
add ecx, eax
cmp ecx, 0xe
jne 0x4037fa
call edi
lea edx, [esp + 0x40]
push edx
call ebp
call ebx
xor eax, eax
xor ecx, ecx
mov word [esp + 0x3a], cx
lea edx, [esp + 0x44]
push edx
mov word [esp + 0x3c], ax
mov eax, dword [esp + 0x3c]
push eax
lea ecx, [esp + 0xcc]
push ecx
lea edx, [esp + 0xf0]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_ScrollConsoleScreenBufferA]
push 0
call dword [sym.imp.KERNEL32.dll_AttachConsole]
lea eax, [esp + 0x120]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetCPInfoExW]
push 0x30
lea ecx, [esp + 0xf4]
push 0
push ecx
mov dword [esp + 0xf8], 0
call fcn.00407510
add esp, 0xc
push esi
lea edx, [esp + 0xf0]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_SetCommConfig]
push 0
lea eax, [esp + 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
mov eax, dword [esp + 0x3c]
inc eax
cmp eax, 0x4f95a3
mov dword [esp + 0x3c], eax
jl 0x403753
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 0x403815
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
lea ebx, [ebx]
call edi
cmp esi, 0x3ba47d4
jge 0x403c88
mov dword [esp + 0x78], 0xe4ed074
mov dword [esp + 0x9c], 0x5420d43
mov dword [esp + 0x40], 0x10a78263
mov dword [esp + 0x68], 0x7c3d17e
mov dword [esp + 0x80], 0x497f36b8
mov dword [esp + 0x5c], 0x641ec599
mov dword [esp + 0xb0], 0x1bd71606
mov dword [esp + 0xac], 0x7992305d
mov dword [esp + 0xc0], 0x29ad751b
mov dword [esp + 0x7c], 0x3001d4a8
mov dword [esp + 0x90], 0x441f30de
mov dword [esp + 0xe0], 0x5afca5b7
mov dword [esp + 0x84], 0x431b2ca2
mov dword [esp + 0x6c], 0x37d2dcbc
mov dword [esp + 0x58], 0x31c00e19
mov dword [esp + 0xd8], 0x25827540
mov dword [esp + 0xe4], 0xdac66bc
mov dword [esp + 0x60], 0x64d52cc1
mov dword [esp + 0xb4], 0x34c65f6f
mov dword [esp + 0xa4], 0x73fdda6e
mov dword [esp + 0x64], 0x4e451508
mov dword [esp + 0xd0], 0x516a418e
mov dword [esp + 0x44], 0x690c9616
mov dword [esp + 0x74], 0x4ab11750
mov dword [esp + 0xbc], 0x4195043
mov dword [esp + 0xd4], 0x655b6d8c
mov dword [esp + 0x88], 0xecd1e01
mov dword [esp + 0xa0], 0x12fcaaed
mov dword [esp + 0x4c], 0x45dc35e
mov dword [esp + 0x48], 0x54f82ac9
mov dword [esp + 0x38], 0x25a9fe80
mov dword [esp + 0xb8], 0x21c743fd
mov dword [esp + 0x94], 0x338b8020
mov dword [esp + 0xc4], 0x20f97bcd
mov dword [esp + 0x8c], 0x7bbec604
mov dword [esp + 0x70], 0x1c62592f
mov dword [esp + 0xcc], 0x2ab3b125
mov dword [esp + 0xdc], 0x5fb7d8c4
mov dword [esp + 0x3c], 0x66f6c7aa
mov dword [esp + 0xa8], 0x1feab2a2
mov dword [esp + 0x98], 0x45edd9b1
mov eax, 0x8fece8e
mul dword [esp + 0x78]
mov eax, dword [esp + 0x78]
sub dword [esp + 0x78], 0x7a9fb392
sub dword [esp + 0x78], 0x7822d7af
sub dword [esp + 0x78], 0x360bd7bf
sub dword [esp + 0x78], 0x24f9b9c4
mov eax, 0x68a7e82c
mul dword [esp + 0x68]
mov eax, dword [esp + 0x68]
mov eax, 0x36271457
mul dword [esp + 0x40]
mov eax, dword [esp + 0x40]
mov eax, 0x1fc8bfad
mul dword [esp + 0x80]
mov eax, dword [esp + 0x80]
sub dword [esp + 0x9c], 0x209778b2
sub dword [esp + 0x40], 0x1ae69fb7
add dword [esp + 0x68], 0x3b05de47
add dword [esp + 0x80], 0x6ab90218
mov eax, 0x69eccf1c
mul dword [esp + 0x9c]
mov eax, dword [esp + 0x9c]
mov eax, 0x4a4e0ecf
mul dword [esp + 0x40]
mov eax, dword [esp + 0x40]
add dword [esp + 0x78], 0x504e8765
add dword [esp + 0x9c], 0x3c9f7595
add dword [esp + 0x80], 0x4e33095
mov eax, 0x446ef157
mul dword [esp + 0x80]
mov eax, dword [esp + 0x80]
mov eax, 0x57fd3cfa
mul dword [esp + 0xac]
mov eax, dword [esp + 0xac]
add dword [esp + 0xe0], 0x3a7ad023
sub dword [esp + 0xc0], 0x59bdfe55
add dword [esp + 0x90], 0x7781908c
mov eax, 0x73e4e5a3
mul dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
add dword [esp + 0x9c], 0x2810496b
mov eax, 0x6626a36e
mul dword [esp + 0x68]
mov eax, dword [esp + 0x68]
sub dword [esp + 0x9c], 0x46b62018
mov eax, 0x23604659
mul dword [esp + 0x5c]
mov eax, dword [esp + 0x5c]
mov eax, 0x2a9a98e9
mul dword [esp + 0x9c]
mov eax, dword [esp + 0x9c]
add dword [esp + 0x40], 0x69969aaf
add dword [esp + 0x5c], 0x3c49e8f0
sub dword [esp + 0x9c], 0x4de48f07
add dword [esp + 0xa4], 0x3436063c
mov eax, 0x174d5c4
mul dword [esp + 0x64]
mov eax, dword [esp + 0x64]
add dword [esp + 0x40], 0x184f2913
sub dword [esp + 0xac], 0x642e844b
add dword [esp + 0x84], 0x4735a73a
add dword [esp + 0x84], 0x18944d04
sub dword [esp + 0x90], 0x77902b90
add dword [esp + 0x90], 0x3fc322c6
sub dword [esp + 0x68], 0x6ea0c6f
sub dword [esp + 0x7c], 0x2e56d3f8
mov eax, 0x2ae97b08
mul dword [esp + 0x84]
mov eax, dword [esp + 0x84]
sub dword [esp + 0x74], 0x66d891cd
sub dword [esp + 0xac], 0x25c902c8
mov eax, 0x44d3c05a
mul dword [esp + 0xd8]
mov eax, dword [esp + 0xd8]
sub dword [esp + 0x84], 0x28440cbc
mov eax, 0x44ade672
mul dword [esp + 0xc0]
mov eax, dword [esp + 0xc0]
add dword [esp + 0x68], 0x1b0114de
add dword [esp + 0xb0], 0x536dd4b9
sub dword [esp + 0x60], 0x37d84e16
mov eax, 0xf7f03db
mul dword [esp + 0xb0]
mov eax, dword [esp + 0xb0]
add dword [esp + 0x48], 0x4dd43080
mov eax, 0x2a0671b2
mul dword [esp + 0x80]
mov eax, dword [esp + 0x80]
sub dword [esp + 0x88], 0xa221b7f
mov eax, 0x80f0313
mul dword [esp + 0x48]
mov eax, dword [esp + 0x48]
sub dword [esp + 0xa0], 0x34a973db
mov eax, 0xeea7189
mul dword [esp + 0x40]
mov eax, dword [esp + 0x40]
sub dword [esp + 0x44], 0x3d340059
add dword [esp + 0x4c], 0x2f1cd4b4
cmp esi, 0xbf5719
jg 0x403c9d
inc esi
cmp esi, 0x19ddaa38
jl 0x403830
call fcn.00403340
xor edx, edx
cmp edx, 0x26
jne 0x403cae
call fcn.00403460
inc edx
cmp edx, 0x409495
jl 0x403ca4
mov esi, dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ebx, dword [sym.imp.KERNEL32.dll_EnumDateFormatsA]
mov ebp, 0x7b
mov edi, edi
cmp dword [0x4cd4fc], 0x86
jne 0x403cef
push 0
call esi
push 0x402e28
call edi
push 0
push 0
push 0
call ebx
sub ebp, 1
jne 0x403cd0
mov esi, dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov edi, dword [sym.imp.KERNEL32.dll_ReadConsoleW]
mov ebx, dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov ebp, dword [sym.imp.KERNEL32.dll_VirtualFree]
mov dword [esp + 0x3c], 0x180ef
cmp dword [0x4cd4fc], 0x1f
jne 0x403d6c
push 0
lea ecx, [esp + 0x1344]
push ecx
call esi
push 0
lea edx, [esp + 0x4c]
push edx
push 0
lea eax, [esp + 0x34c]
push eax
push 0
call edi
push 0
lea ecx, [esp + 0x1744]
push ecx
call ebx
push 0
push 0
push 0
call ebp
push 0
lea edx, [esp + 0x744]
push edx
push 0x402e40
push 0x402e68
call dword [sym.imp.KERNEL32.dll_GetFirmwareEnvironmentVariableW]
sub dword [esp + 0x3c], 1
jne 0x403d14
push 0x402eac
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov eax, dword [0x4ca404]
mov dword [0x4cd4f0], eax
call eax
mov ecx, dword [esp + 0x1f74]
pop edi
mov dword fs:[0], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret